(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 12.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       158,          7]
NotebookDataLength[    167766,       3985]
NotebookOptionsPosition[    146044,       3693]
NotebookOutlinePosition[    147072,       3723]
CellTagsIndexPosition[    147029,       3720]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["tests", "Subsection",
 CellChangeTimes->{{3.7649320498543735`*^9, 
  3.764932050269226*^9}},ExpressionUUID->"6b16fd52-48e4-42e9-b963-\
f73f58cbec95"],

Cell[BoxData[
 RowBox[{"Names", "[", "\"\<*CSS*\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.771871015500066*^9, 3.7718710187289066`*^9}, 
   3.771871150712892*^9},
 CellLabel->"In[10]:=",ExpressionUUID->"ae6bfc8a-c8e0-4d1a-958a-c022138ca83c"],

Cell[BoxData[
 RowBox[{"Get", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.7683146777681236`*^9, 3.768314693272*^9}, {
  3.768315248351342*^9, 3.7683152535223846`*^9}, {3.7683153734350004`*^9, 
  3.76831537368495*^9}},
 CellLabel->"In[10]:=",ExpressionUUID->"eb1af7c9-eb26-4283-9cd5-729c553cf5da"],

Cell[BoxData[
 RowBox[{"Get", "[", "\"\<CSSTools`CSSSelectors3`\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.773074597677104*^9, 3.77307460318137*^9}, {
  3.7737457886831617`*^9, 3.773745789342722*^9}},
 CellLabel->"In[5]:=",ExpressionUUID->"15f8de43-6f7e-4d6e-b382-8d00cef55b18"],

Cell[BoxData[
 RowBox[{
  RowBox[{"document", "=", 
   RowBox[{"Import", "[", 
    RowBox[{
    "\"\<https://www.w3.org/TR/selectors-3/\>\"", ",", "\"\<XMLObject\>\""}], 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7730746066782784`*^9, 3.773074609273466*^9}, {
  3.773074720663883*^9, 3.7730747261131835`*^9}, {3.7742770080690613`*^9, 
  3.774277010663272*^9}},
 CellLabel->
  "In[289]:=",ExpressionUUID->"5295043d-da1e-46b4-bed5-4c9b7fbcac4d"],

Cell[BoxData[
 RowBox[{
  RowBox[{"document", "=", 
   RowBox[{"Import", "[", 
    RowBox[{
    "\"\<https://www.w3.org/TR/selectors-3/\>\"", ",", "\"\<XMLObject\>\"", 
     ",", 
     RowBox[{"\"\<IncludeNamespaces\>\"", "\[Rule]", "True"}]}], "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7742770159067183`*^9, 3.7742770205483513`*^9}},
 CellLabel->
  "In[143]:=",ExpressionUUID->"a31399c5-3f72-41d3-9ed4-fdf105414512"],

Cell[BoxData[
 RowBox[{
  RowBox[{"document", "=", 
   RowBox[{"ImportString", "[", 
    RowBox[{
    "\"\<<t><elem xml:name='value' lang='en'>cat</elem></t>\>\"", ",", 
     "\"\<XML\>\"", ",", 
     RowBox[{"\"\<IncludeNamespaces\>\"", "\[Rule]", "True"}]}], "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.774277078980979*^9, 3.7742771709906416`*^9}, {
   3.774278918567253*^9, 3.774278952084136*^9}, 3.7742792712665024`*^9, {
   3.7742835778735285`*^9, 3.774283609702614*^9}, {3.774283683258701*^9, 
   3.774283688975932*^9}, 3.774286547748478*^9},
 CellLabel->"In[98]:=",ExpressionUUID->"9c548b80-0590-45cf-acee-1d700ebcb08a"],

Cell[BoxData[
 RowBox[{
  RowBox[{"document", "=", 
   RowBox[{"ImportString", "[", 
    RowBox[{
    "\"\<<body>\n<p> The last P before the note.</p>\n<div \
class=\\\"note\\\">\n  <p> The first P inside the note.</p>\n</div>\n\
</body>\>\"", ",", "\"\<XML\>\""}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7742838384023695`*^9, 3.7742838915528154`*^9}, {
   3.774285402405401*^9, 3.774285424044609*^9}, 3.774286547064707*^9},
 CellLabel->"In[24]:=",ExpressionUUID->"3efe373a-7e7d-47bd-9273-53b39c83e7fd"],

Cell[BoxData[
 RowBox[{"CSSTargets", "[", 
  RowBox[{"document", ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"CSSSelector", "[", "\"\<p\>\"", "]"}], ",", 
     RowBox[{"CSSSelector", "[", "\"\<div\>\"", "]"}]}], "}"}]}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.774347346551296*^9, 3.7743473826271925`*^9}, {
  3.774347679924658*^9, 3.7743476876629963`*^9}, {3.774358109604586*^9, 
  3.774358110504182*^9}, {3.7743698117169514`*^9, 3.7743698130663443`*^9}, {
  3.77437048911679*^9, 3.7743704892653947`*^9}, {3.7743714992574835`*^9, 
  3.774371500374464*^9}},
 CellLabel->"In[19]:=",ExpressionUUID->"d4cc7a5c-4122-480f-be7a-27bdd6964ffa"],

Cell[BoxData[
 RowBox[{"cssExamplesDirectory", "=", 
  RowBox[{"FileNameJoin", "[", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"ParentDirectory", "[", 
      RowBox[{"DirectoryName", "[", 
       RowBox[{"FindFile", "[", "\"\<CSSTools`\>\"", "]"}], "]"}], "]"}], 
     ",", "\"\<Examples\>\""}], "}"}], "]"}]}]], "Input",
 CellLabel->"In[40]:=",ExpressionUUID->"da1f0bf9-cf12-4851-8bf1-69b18300620d"],

Cell[BoxData[
 RowBox[{"SetDirectory", "[", "cssExamplesDirectory", "]"}]], "Input",
 CellChangeTimes->{{3.7743626114029727`*^9, 3.774362620108869*^9}},
 CellLabel->"In[41]:=",ExpressionUUID->"46cfc2a3-0acb-4276-92c2-c3423d2ca240"],

Cell[BoxData[
 RowBox[{
  RowBox[{"document", "=", 
   RowBox[{"Import", "[", 
    RowBox[{
     RowBox[{"FileNameJoin", "[", 
      RowBox[{"{", 
       RowBox[{"cssExamplesDirectory", ",", "\"\<index.html\>\""}], "}"}], 
      "]"}], ",", "\"\<XMLObject\>\""}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{
  3.7743625578217835`*^9, {3.7743715909485083`*^9, 
   3.774371591444208*^9}},ExpressionUUID->"0908a7ea-026e-4233-b3b9-\
ecf4d808c8fe"],

Cell[BoxData[
 RowBox[{"ExtractCSSFromXML", "[", 
  RowBox[{"document", ",", 
   RowBox[{"\"\<RootDirectory\>\"", "\[Rule]", "cssExamplesDirectory"}]}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.7743715935645075`*^9, 3.774371594223746*^9}},
 CellLabel->"In[25]:=",ExpressionUUID->"62d79b70-300c-44fc-8d10-78f4506179d3"],

Cell["\<\
These are normally set as Block variables during initialization of CSS \
processing.\
\>", "Text",
 CellChangeTimes->{{3.774268955696604*^9, 
  3.774268979912985*^9}},ExpressionUUID->"193214c3-f1be-4608-b610-\
ea56575d53b8"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"Begin", "[", "\"\<CSSTools`CSSSelectors3`Private`\>\"", "]"}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"$Document", "=", "document"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"$DocumentNamespaces", "=", 
  RowBox[{
  "getDocumentNamespaces", "[", "$Document", "]"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"$Elements", "=", 
   RowBox[{"Position", "[", 
    RowBox[{"$Document", ",", "_XMLElement"}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"$DocumentRootPosition", "=", 
  RowBox[{"First", "[", 
   RowBox[{"$Elements", ",", 
    RowBox[{"{", "}"}]}], "]"}]}], "\[IndentingNewLine]", 
 RowBox[{"$DocumentLanguages", "=", 
  RowBox[{
  "getDocumentLanguages", "[", "$Document", "]"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"$ID", "=", "\"\<id\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"$IgnoreCase", "=", 
   RowBox[{"<|", 
    RowBox[{
     RowBox[{"\"\<Type\>\"", "\[Rule]", "True"}], ",", 
     RowBox[{"\"\<AttributeName\>\"", "\[Rule]", "True"}], ",", 
     RowBox[{"\"\<AttributeValue\>\"", "\[Rule]", "True"}]}], "|>"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"End", "[", "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.773871394728898*^9, 3.7738714197809105`*^9}, {
  3.77426891117061*^9, 3.7742689533273335`*^9}, {3.7742693816907516`*^9, 
  3.774269432590276*^9}, {3.7742695720239964`*^9, 3.7742696884442606`*^9}},
 CellLabel->
  "In[106]:=",ExpressionUUID->"52627f25-37b2-4a22-81d0-1a453a90e809"],

Cell[BoxData["CSSTools`CSSSelectors3`Private`$Document"], "Input",
 CellLabel->
  "In[115]:=",ExpressionUUID->"57189547-6c1f-4b0d-8d16-341e0f53aa03"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Cases", "[", 
   RowBox[{"CSSTools`CSSSelectors3`Private`$Document", ",", 
    RowBox[{
     RowBox[{"XMLElement", "[", 
      RowBox[{"_", ",", 
       RowBox[{"{", 
        RowBox[{"___", ",", 
         RowBox[{
          RowBox[{"(", 
           RowBox[{
            RowBox[{"{", 
             RowBox[{"\"\<\>\"", ",", "x_"}], "}"}], "|", "x_"}], ")"}], 
          "\[Rule]", "_"}], ",", "___"}], "}"}], ",", "___"}], "]"}], 
     "\[RuleDelayed]", "x"}], ",", "Infinity"}], "]"}], "//", 
  "Union"}]], "Input",
 CellChangeTimes->{{3.7742735711473274`*^9, 3.774273617089717*^9}, {
  3.774280467856736*^9, 3.774280478749419*^9}, {3.7742818381753187`*^9, 
  3.774281838260307*^9}, {3.774282874446107*^9, 3.774282881583905*^9}, {
  3.7742839214994907`*^9, 3.774283926623888*^9}},
 CellLabel->
  "In[329]:=",ExpressionUUID->"ffaae6a6-9229-4bc3-a6aa-ca63fa04372b"],

Cell[BoxData[
 RowBox[{"sel", "=", 
  RowBox[{"CSSSelector", "[", "\"\<div > p:first-child\>\"", 
   RowBox[{"(*", "\"\<p:last-child\>\"", "*)"}], 
   RowBox[{"(*", 
    RowBox[{",", 
     RowBox[{"\"\<Namespaces\>\"", "\[Rule]", 
      RowBox[{"{", 
       RowBox[{
       "\"\<xhtml\>\"", "->", "\"\<http://www.w3.org/1999/xhtml\>\""}], 
       "}"}]}]}], "*)"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.774267914812804*^9, 3.774267941915305*^9}, {
   3.7742680791602635`*^9, 3.7742680863830204`*^9}, 3.7742685293448973`*^9, {
   3.77427082319034*^9, 3.7742708240660553`*^9}, 3.77427191431041*^9, {
   3.774272097823183*^9, 3.774272128392477*^9}, {3.7742721858705564`*^9, 
   3.774272196438181*^9}, {3.774273095042658*^9, 3.7742730954105735`*^9}, 
   3.774273308290837*^9, 3.774273380569992*^9, {3.77427353005341*^9, 
   3.774273545026656*^9}, {3.7742736319949636`*^9, 3.774273632360836*^9}, {
   3.7742771840487614`*^9, 3.7742772104329224`*^9}, {3.7742774678812785`*^9, 
   3.7742774685511117`*^9}, {3.7742793956687174`*^9, 3.774279395939642*^9}, {
   3.7742796494266577`*^9, 3.774279661739914*^9}, {3.774279722209545*^9, 
   3.774279723412169*^9}, {3.77427975653017*^9, 3.7742797743407617`*^9}, {
   3.774280253092281*^9, 3.7742802543219123`*^9}, {3.774280452466443*^9, 
   3.7742804536430955`*^9}, {3.7742804974926777`*^9, 
   3.7742804988282843`*^9}, {3.774280890771263*^9, 3.7742808909541955`*^9}, {
   3.7742818526188927`*^9, 3.7742818548401833`*^9}, {3.7742821098580294`*^9, 
   3.7742821107447557`*^9}, {3.774282684992877*^9, 3.774282685796627*^9}, {
   3.774282738080409*^9, 3.7742827386952257`*^9}, {3.7742828159372683`*^9, 
   3.774282818425519*^9}, {3.7742829274046783`*^9, 3.7742829308786297`*^9}, {
   3.7742836260645285`*^9, 3.7742836310009794`*^9}, {3.774283941171358*^9, 
   3.77428396986841*^9}, 3.774284239638692*^9, 3.7742845215286484`*^9, {
   3.7742846358029003`*^9, 3.7742846490507593`*^9}, {3.774284696251999*^9, 
   3.7742847026350145`*^9}, {3.774284861821202*^9, 3.7742848684321423`*^9}, 
   3.774285313173378*^9, {3.7742853574464903`*^9, 3.7742853578713913`*^9}, {
   3.7742854423908663`*^9, 3.774285442612797*^9}, {3.774285519351715*^9, 
   3.7742855319587803`*^9}, {3.774285647767416*^9, 3.7742856516042337`*^9}, {
   3.7742864712765565`*^9, 3.774286472858059*^9}, {3.7742865626177907`*^9, 
   3.7742865682950354`*^9}, {3.774287493057088*^9, 3.7742874931811895`*^9}, {
   3.7742875262142677`*^9, 3.7742875354111366`*^9}, {3.7742876398592186`*^9, 
   3.7742876418957095`*^9}, 3.77428777903811*^9, {3.774287812616808*^9, 
   3.774287832554282*^9}, {3.774287922869067*^9, 3.7742879235146923`*^9}},
 CellLabel->
  "In[116]:=",ExpressionUUID->"a1598550-6caa-4f8d-9e87-8966195dcd49"],

Cell[BoxData[
 RowBox[{"sel", "[", "\"\<Sequence\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.77426794562914*^9, 3.7742679625548463`*^9}},
 CellLabel->
  "In[117]:=",ExpressionUUID->"7bc85f3e-b246-4406-a156-38c1ef05411a"],

Cell[BoxData[
 RowBox[{
  RowBox[{"selection", "=", "CSSTools`CSSSelectors3`Private`$Elements"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7742717702703085`*^9, 3.7742717862142673`*^9}, 
   3.774279037558293*^9, 3.774279668464876*^9},
 CellLabel->
  "In[118]:=",ExpressionUUID->"766680d4-12ad-4c1b-a379-43a976069ebe"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSSelectors3`Private`processSelector", "[", "sel", 
  "]"}]], "Input",
 CellChangeTimes->{{3.774287736835405*^9, 3.7742877483059545`*^9}},
 CellLabel->
  "In[119]:=",ExpressionUUID->"8eb1518e-78ec-4478-b4cd-510f40495760"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSSelectors3`Private`processFullSelector", "[", 
  RowBox[{"{", "sel", "}"}], "]"}]], "Input",
 CellChangeTimes->{{3.774347636030605*^9, 3.774347638682853*^9}},
 CellLabel->
  "In[121]:=",ExpressionUUID->"2ad71781-5361-40d5-b49f-0422c9b9f1c9"]
}, Closed]],

Cell[CellGroupData[{

Cell["media query tests", "Section",
 CellChangeTimes->{{3.7755618211136236`*^9, 
  3.7755618235698605`*^9}},ExpressionUUID->"3e9b576a-c8b6-4f11-b1a3-\
74fc4f5fe628"],

Cell[BoxData[
 RowBox[{"Get", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellLabel->"In[2]:=",ExpressionUUID->"a6e7cc8a-026b-4df9-ad9e-78fcb4c55183"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<( (not (height < -100px)) or (aspect-ratio : 10/3) or (dummy))\>\"", 
    "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"tokens", "//", "Column"}], ";"}]}], "Input",
 CellChangeTimes->{{3.775558081614582*^9, 3.7755581105116634`*^9}, {
   3.7755615268281217`*^9, 3.7755615526071334`*^9}, {3.7755616665497026`*^9, 
   3.775561670376526*^9}, {3.7755618456955633`*^9, 3.7755618461244307`*^9}, {
   3.7755618995908127`*^9, 3.7755619018590937`*^9}, {3.7755622830043364`*^9, 
   3.775562290781928*^9}, {3.7755626697878237`*^9, 3.775562672354024*^9}, 
   3.7755627445035305`*^9, {3.7755629543528476`*^9, 3.7755629638219194`*^9}, {
   3.775563012728631*^9, 3.7755630296043787`*^9}, {3.775563449210365*^9, 
   3.7755634669226074`*^9}, {3.775563646523589*^9, 3.7755636468284807`*^9}, {
   3.7755637340046015`*^9, 3.775563734380473*^9}, {3.7755638985446053`*^9, 
   3.7755638992623806`*^9}, {3.775580984744113*^9, 3.7755809851819744`*^9}, {
   3.7755810229899855`*^9, 3.7755810654864807`*^9}, {3.7755823356172028`*^9, 
   3.775582369505438*^9}, 3.775582414180234*^9, 3.775582467769224*^9, {
   3.7755827538023624`*^9, 3.7755827594005847`*^9}, {3.7755828979226108`*^9, 
   3.7755828999012766`*^9}, {3.775583066393936*^9, 3.7755830664720182`*^9}, {
   3.7755832742426367`*^9, 3.775583274447797*^9}, {3.7755835548631425`*^9, 
   3.775583557812449*^9}, {3.7755836216943045`*^9, 3.775583622034795*^9}, {
   3.7755836698772807`*^9, 3.775583671805277*^9}, {3.775583779040964*^9, 
   3.77558378019664*^9}, {3.7755840756623125`*^9, 3.7755840828958936`*^9}, {
   3.7755842723698287`*^9, 3.7755842915376177`*^9}, {3.7755846165158725`*^9, 
   3.775584620332549*^9}, {3.775584745432231*^9, 3.7755847486517825`*^9}, 
   3.77558478618305*^9, {3.775585660749704*^9, 3.775585662316493*^9}, 
   3.7758444225673895`*^9, 3.775844893168517*^9, {3.7758449441234455`*^9, 
   3.7758449449358516`*^9}, {3.7759875252500925`*^9, 3.7759875343391776`*^9}},
 CellLabel->"In[15]:=",ExpressionUUID->"3a04ff58-6512-4cd8-9d31-c9a4a230d890"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{"CSSTokenize", "[", "\"\<and (dummy)\>\"", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7759059673947115`*^9, 3.7759059679795246`*^9}, {
  3.7759065904945574`*^9, 3.77590659396246*^9}},
 CellLabel->"In[18]:=",ExpressionUUID->"3bb41c15-2a39-4f6f-952d-c04a6d05111c"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<( (not (height < -100px)) and (aspect-ratio : 10/3) or (color))\>\"",
     "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7755857171609898`*^9, 3.775585752288209*^9}, {
  3.775585884300953*^9, 3.7755858843322*^9}},
 CellLabel->"In[20]:=",ExpressionUUID->"8eb083dd-9b59-4034-960f-bcafeb61ebca"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", "\"\<((( (100px < height <= 200px) )))\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7758395687517366`*^9, 3.7758395901359406`*^9}, {
  3.7758398006888433`*^9, 3.775839822480929*^9}},
 CellLabel->"In[22]:=",ExpressionUUID->"763f374f-0e55-4f30-9dbe-7444053d344c"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{"CSSTokenize", "[", "\"\<(100)\>\"", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7758431061897287`*^9, 3.775843111157931*^9}},
 CellLabel->"In[7]:=",ExpressionUUID->"0e1eec32-6f28-4415-9739-026c4f9204fa"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{"CSSTokenize", "[", "\"\<print and (color)\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.775929243123643*^9, 3.7759292582300067`*^9}, {
  3.7759295000252047`*^9, 3.775929500170159*^9}},
 CellLabel->"In[24]:=",ExpressionUUID->"95842010-309e-409f-a402-1b6212f059a3"],

Cell[BoxData[
 RowBox[{"test", "=", 
  RowBox[{"Catch", "@", 
   RowBox[{
   "CSSTools`CSSStyleSheetInterpreter`consumeMediaQuery", "[", "tokens", 
    "]"}]}]}]], "Input",
 CellChangeTimes->{{3.775906606354534*^9, 3.7759066436847067`*^9}},
 CellLabel->"In[25]:=",ExpressionUUID->"6a0d57cb-a6bb-4201-a1fa-a73041267cd3"],

Cell[BoxData[
 RowBox[{"test", "=", 
  RowBox[{"Catch", "@", 
   RowBox[{
   "CSSTools`CSSMediaQueries4`Private`consumeMediaCondition", "[", "tokens", 
    "]"}]}]}]], "Input",
 CellChangeTimes->{
  3.7755651503485823`*^9, {3.77558247264966*^9, 3.7755824849697533`*^9}, {
   3.7755826278743515`*^9, 3.775582638631948*^9}, {3.775583211430894*^9, 
   3.775583211767784*^9}},
 CellLabel->"In[28]:=",ExpressionUUID->"760ba8eb-5a20-44b3-851d-8e9c8db6b590"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSMediaQueries4`Private`isMediaFeatureName", "[", 
  "\"\<a\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.775844917997081*^9, 3.7758449304659243`*^9}},
 CellLabel->
  "In[112]:=",ExpressionUUID->"f68a7e88-7ddf-444e-80d6-229ab7e3dd44"],

Cell[BoxData[
 RowBox[{"test", "//", "FullForm"}]], "Input",
 CellChangeTimes->{{3.775584412938265*^9, 3.7755844150607066`*^9}, {
  3.775584802606903*^9, 3.775584802810075*^9}, {3.7755856708188972`*^9, 
  3.775585671959401*^9}},
 CellLabel->
  "In[283]:=",ExpressionUUID->"eef84007-0c07-4764-953c-754e22ec1ee1"]
}, Closed]],

Cell[CellGroupData[{

Cell["Other tests", "Section",
 CellChangeTimes->{{3.7742795946212935`*^9, 3.7742795956369934`*^9}, {
  3.777139262512531*^9, 
  3.7771392627044697`*^9}},ExpressionUUID->"ec79b433-31c7-477f-8006-\
57ce7c5c5313"],

Cell[BoxData[
 RowBox[{"Get", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellLabel->"In[10]:=",ExpressionUUID->"ac14d1de-3a9b-437d-a89c-49e1b585dab8"],

Cell[CellGroupData[{

Cell["Simple CSS stylesheets", "Subsection",
 CellChangeTimes->{{3.7766819693306875`*^9, 
  3.7766819776748295`*^9}},ExpressionUUID->"d867ad7e-5455-492d-b201-\
a000f56e2911"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<.class {color:red; font-size:15px} .a {font-size:1em}\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7760005981306105`*^9, 3.7760006392439175`*^9}},
 CellLabel->"In[27]:=",ExpressionUUID->"38a924aa-5fa7-4bf3-a109-63e10f851488"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<.class { background-color:#dddddd ; font-size:15px} .a {background: \
url(\\\"html-background-png-7.png\\\") repeat darkblue}\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{
  3.777118212365858*^9, {3.7771183888116865`*^9, 3.7771183987475047`*^9}},
 CellLabel->"In[73]:=",ExpressionUUID->"62a14512-298a-4a46-be5b-20851bb0d593"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<.class { font:italic ; font-size:15px} .a {font-weight:bold}\>\"", 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.777123464644065*^9, 3.7771234860262737`*^9}, {
  3.777123521853807*^9, 3.777123546430965*^9}},
 CellLabel->"In[96]:=",ExpressionUUID->"6f18547d-771a-41f3-a610-55662a958766"]
}, Open  ]],

Cell[CellGroupData[{

Cell["Only @media", "Subsection",
 CellChangeTimes->{{3.7766819863540864`*^9, 
  3.7766819879495735`*^9}},ExpressionUUID->"5d323993-6bc6-44e6-88f4-\
d5b8e5466c39"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  @media not print and (color) {\n    body { font-size: 10pt }\n   \
 h1 {color: red}\n  }\>\"", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7759897170171986`*^9, 3.775989720206188*^9}},
 CellLabel->"In[61]:=",ExpressionUUID->"dcc389e7-a499-4a1e-8a7c-1edb6bc667b0"]
}, Open  ]],

Cell[CellGroupData[{

Cell["only @page", "Subsection",
 CellChangeTimes->{{3.776681996496419*^9, 
  3.7766820021494756`*^9}},ExpressionUUID->"9174ef69-bb05-41a8-81a1-\
3f810d7c6741"],

Cell[CellGroupData[{

Cell["Simple", "Subsubsection",
 CellChangeTimes->{{3.7766867155352554`*^9, 
  3.776686716308998*^9}},ExpressionUUID->"cc96c6bc-d5d2-41cf-9e50-\
23ab8360bb81"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<@page {\n  size: 8.5in 11in ;\n  margin: 10% 5%;\n}\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7766867269865007`*^9, 3.7766867367540007`*^9}, {
  3.776701213332181*^9, 3.7767012164601727`*^9}, {3.7767013056759305`*^9, 
  3.7767013063767085`*^9}},
 CellLabel->"In[13]:=",ExpressionUUID->"0267e842-1646-4cdc-8711-b5eef0eaef9d"]
}, Closed]],

Cell[CellGroupData[{

Cell["Complicated all pages", "Subsubsection",
 CellChangeTimes->{{3.7766867188168187`*^9, 3.7766867206326375`*^9}, {
  3.776777173868849*^9, 
  3.7767771755993395`*^9}},ExpressionUUID->"fbead5d9-1681-4938-b155-\
28f676e0689d"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<@page {\n  size: 8.5in 11in ;\n  margin-left: 10%;\n  margin-right: \
5%;\n\n  @top-left {\n    content: normal;\n\tfont-family: sans-serif;\n    \
font-weight: bold;\n    font-size: 2em;\n\tborder:green;\n  }\n  @top-right {\
\n    content: \\\"Page \\\" counter(page);\n  }\n}\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.771689827812065*^9, 3.771689845946342*^9}, {
   3.772136146262437*^9, 3.7721361531210604`*^9}, {3.772137679994361*^9, 
   3.7721376838419957`*^9}, {3.7721394238435783`*^9, 
   3.7721394245068054`*^9}, {3.772141986539654*^9, 3.772141988499898*^9}, {
   3.772146073727729*^9, 3.772146099106422*^9}, {3.7721462780643063`*^9, 
   3.772146327874493*^9}, {3.7721947049576645`*^9, 3.7721947095632668`*^9}, {
   3.772195029028387*^9, 3.7721950295542*^9}, {3.7721986739098396`*^9, 
   3.7721986740527983`*^9}, {3.772357238964463*^9, 3.7723572440319395`*^9}, {
   3.772357345297872*^9, 3.7723573474775267`*^9}, 3.7723614324753456`*^9, 
   3.7723658104586363`*^9, {3.777132699691518*^9, 3.77713270038923*^9}, {
   3.777132773069002*^9, 3.777132773178353*^9}},
 CellLabel->
  "In[191]:=",ExpressionUUID->"f643c730-bd35-4434-8595-f4a6834d3f8e"]
}, Closed]],

Cell[CellGroupData[{

Cell["Complicated left pages", "Subsubsection",
 CellChangeTimes->{{3.7766867188168187`*^9, 3.7766867206326375`*^9}, {
  3.776777173868849*^9, 
  3.7767771848052144`*^9}},ExpressionUUID->"90f393b7-37f1-48c1-992a-\
bf56328f68ab"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<@page :left {\n  size: 8.5in 11in ;\n  margin-left: 10%;\n  \
margin-right: 5%;\n\n  @top-left {\n    content: normal;\n\tfont-family: \
sans-serif;\n    font-weight: bold;\n    font-size: 2em;\n\tborder:green;\n  \
}\n  @top-right {\n    content: \\\"Page \\\" counter(page);\n  }\n}\>\"", 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7767771862007837`*^9, 3.7767771911279144`*^9}},
 CellLabel->"In[28]:=",ExpressionUUID->"565754d9-dc39-42d6-ba85-c27b9d13923d"]
}, Closed]]
}, Open  ]],

Cell[CellGroupData[{

Cell["mixed @media tests", "Subsection",
 CellChangeTimes->{{3.776682045394427*^9, 
  3.7766820534966407`*^9}},ExpressionUUID->"8ee0a128-b684-457f-a6d1-\
cca8e418db8b"],

Cell[CellGroupData[{

Cell["simple, non-overlapping properties", "Subsubsection",
 CellChangeTimes->{{3.776682063821561*^9, 
  3.776682077401308*^9}},ExpressionUUID->"18536358-c12e-4945-ab01-\
9f13b970e960"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  a {font-size:30px}\n  @media not print and (color) {\n    body { \
font-size: 10pt }\n    h1 {color: red}\n  }\n  b {font-size:20px}\n  @media \
all and (min-width: 200px) {\n    body { font-size: 13px }\n  }\n  \>\"", 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.774783635027813*^9, 3.774783666723366*^9}, {
   3.7747841691448193`*^9, 3.774784174796071*^9}, {3.774788485251605*^9, 
   3.77478849006374*^9}, {3.774802612828641*^9, 3.7748026130604734`*^9}, {
   3.7759896966786594`*^9, 3.7759897113999305`*^9}, {3.7760088951344457`*^9, 
   3.776008908759283*^9}, {3.7760141477498503`*^9, 3.776014157472763*^9}, 
   3.776014244702053*^9, {3.7760143526627417`*^9, 3.7760143711328945`*^9}},
 CellLabel->"In[5]:=",ExpressionUUID->"c292f9a4-3208-4518-bbec-3f420dce92c6"]
}, Open  ]],

Cell[CellGroupData[{

Cell["frame styling", "Subsubsection",
 CellChangeTimes->{{3.776682105721819*^9, 
  3.77668210836391*^9}},ExpressionUUID->"02b84a92-82f4-45d5-afa5-\
76d24b72f850"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  a {border-left:20px; font-family:'times new roman'}\n  @media \
not print and (color) {\n    body { border-right-style:dashed !important}\n  \
}\n  b {border-left-width:20px}\n  @media all and (min-width: 200px) {\n    \
body { border-left-width: 13px }\n  }\n  \>\"", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.776014752804973*^9, 3.7760147789581413`*^9}, {
  3.776014854171199*^9, 3.7760148844471197`*^9}, {3.776517072593919*^9, 
  3.7765170752241063`*^9}, {3.7765171094655333`*^9, 3.7765171126085634`*^9}, {
  3.776523669288915*^9, 3.7765236738794527`*^9}, {3.776596007460096*^9, 
  3.7765960284584637`*^9}, {3.776596214684639*^9, 3.7765962156363387`*^9}, {
  3.7766036847282476`*^9, 3.776603708877596*^9}, {3.776604745379573*^9, 
  3.7766047466021852`*^9}},
 CellLabel->"In[13]:=",ExpressionUUID->"e528a2e6-d1f8-4092-b677-4fd1e4e60de3"]
}, Closed]],

Cell[CellGroupData[{

Cell["margins", "Subsubsection",
 CellChangeTimes->{{3.7766821320514183`*^9, 
  3.7766821331138134`*^9}},ExpressionUUID->"1720c5ab-5153-4ce5-9f92-\
0836acc1307d"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  a {padding-left:20px; font-family:'times new roman'}\n  @media \
not print and (color) {\n    body { padding-right:2em !important}\n  }\n  b \
{padding-left:30px}\n  @media all and (min-width: 200px) {\n    body { \
padding-left: 13px }\n  }\n  \>\"", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7766058017806377`*^9, 3.776605861733847*^9}},
 CellLabel->
  "In[149]:=",ExpressionUUID->"2a1a13a5-8ae6-4691-a654-639ca1bd412b"]
}, Closed]],

Cell[CellGroupData[{

Cell["ImageSize", "Subsubsection",
 CellChangeTimes->{{3.77668222263387*^9, 
  3.7766822255488605`*^9}},ExpressionUUID->"ceba8625-4dca-49fc-8749-\
c4b1d8955e8f"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  a {height:20px; font-family:'times new roman'}\n  @media not \
print and (color) {\n    body { max-height:2em !important}\n  }\n  b \
{min-width:30px}\n  @media all and (min-width: 200px) {\n    body { width: \
13px }\n  }\n  \>\"", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.776607415471842*^9, 3.7766074276931906`*^9}, {
  3.776612014714707*^9, 3.7766120437608232`*^9}},
 CellLabel->
  "In[133]:=",ExpressionUUID->"eab35b55-e1bc-4881-b05f-8e43c70d87aa"]
}, Closed]],

Cell[CellGroupData[{

Cell["mixed FontVariations 1", "Subsubsection",
 CellChangeTimes->{{3.776682244548977*^9, 
  3.7766822475810204`*^9}},ExpressionUUID->"6d37d907-3efd-40a9-b61f-\
74292f57dce8"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  a {text-decoration:underline line-through; font-family:'times \
new roman'}\n  @media not print and (color) {\n    body { \
font-variant:small-caps !important}\n  }\n  b {text-transform:none}\n  @media \
all and (min-width: 200px) {\n    body { text-decoration: blink overline \
underline }\n  }\n  \>\"", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.77661520342385*^9, 3.7766152486454964`*^9}, {
  3.7766155497425776`*^9, 3.77661560785293*^9}, {3.776616158312686*^9, 
  3.776616170770817*^9}, {3.776617505885874*^9, 3.7766175085106497`*^9}},
 CellLabel->
  "In[144]:=",ExpressionUUID->"1ee7cc70-13a8-40d1-8e1d-e1f049f1f9c0"]
}, Closed]],

Cell[CellGroupData[{

Cell["mixed FontVariations 2", "Subsubsection",
 CellChangeTimes->{{3.776682244548977*^9, 3.7766822475810204`*^9}, {
  3.776684033540936*^9, 
  3.776684034463543*^9}},ExpressionUUID->"8553e85f-c302-4721-9dd3-\
b2291035f24c"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  @media not print and (color) {\n    body { \n      \
font-variant:small-caps !important; \n      text-decoration:underline;\n      \
font-family:serif}\n  }\n  b {text-transform:none}\n  \>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.776617516839734*^9, 3.7766175335118413`*^9}, {
  3.77667682945401*^9, 3.776676843916613*^9}, {3.776678942570533*^9, 
  3.7766789453776574`*^9}, {3.7766791287783566`*^9, 3.7766791328990912`*^9}, {
  3.776679322381841*^9, 3.7766793232375917`*^9}},
 CellLabel->
  "In[114]:=",ExpressionUUID->"2a518d0d-a252-408c-a6d5-c6f16da37bbd"]
}, Closed]],

Cell[CellGroupData[{

Cell["mixed FontVariations 3", "Subsubsection",
 CellChangeTimes->{{3.776682244548977*^9, 3.7766822475810204`*^9}, {
  3.776684042873181*^9, 
  3.7766840429574447`*^9}},ExpressionUUID->"62933a25-3679-4f73-996b-\
ea6a90896b0f"],

Cell[BoxData[
 RowBox[{
  RowBox[{"tokens", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<\n  @media not print and (color) {\n    body { \n      \
font-variant:small-caps !important; \n      font-family:serif}\n  }\n  b \
{text-transform:none}\n  a {text-decoration:underline}\n  \>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.776679330184442*^9, 3.776679336389535*^9}},
 CellLabel->
  "In[124]:=",ExpressionUUID->"9976c4b6-a17d-4480-8a4b-03d0b99e3577"]
}, Closed]],

Cell["PrintingOptions", "Subsubsection",
 CellChangeTimes->{{3.776684286354376*^9, 
  3.776684287901663*^9}},ExpressionUUID->"0de30cfc-03b7-46b3-bf1a-\
caac9251bd82"]
}, Open  ]],

Cell[CellGroupData[{

Cell["testing", "Subsection",
 CellChangeTimes->{{3.7766842806977396`*^9, 
  3.7766842815873146`*^9}},ExpressionUUID->"6370e148-c389-46f7-8b03-\
1af6473c5fdf"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSStyleSheetInterpreter`$Debug", "=", "False"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.775995507365887*^9, 3.775995514469634*^9}, {
  3.775995587464082*^9, 3.7759955879759398`*^9}, {3.775995993990116*^9, 
  3.775995994324012*^9}, {3.775996033413766*^9, 3.77599603388562*^9}, {
  3.7766855742073216`*^9, 3.77668557459793*^9}, {3.776685637551549*^9, 
  3.7766856379700613`*^9}, {3.776686767309823*^9, 3.776686779903189*^9}},
 CellLabel->"In[48]:=",ExpressionUUID->"f8d89729-4eab-408a-8503-b4c8f0c1f061"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"CSSData", "=", 
   RowBox[{"Catch", "@", 
    RowBox[{
    "CSSTools`CSSStyleSheetInterpreter`Private`consumeStyleSheet", "[", 
     "tokens", "]"}]}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"CSSData", "//", "Dataset"}]}], "Input",
 CellChangeTimes->{{3.775989648332634*^9, 3.775989656516268*^9}, 
   3.776001330100006*^9, 3.776008918296373*^9, {3.7760099638172693`*^9, 
   3.776009967014262*^9}, {3.7765171288535604`*^9, 3.7765171325724125`*^9}, 
   3.7766904622444468`*^9, {3.7766904984460506`*^9, 3.77669050868083*^9}, {
   3.7766976444674096`*^9, 3.776697644736371*^9}, {3.77670122230634*^9, 
   3.7767012235309343`*^9}, {3.7767013147000933`*^9, 3.776701344131771*^9}},
 CellLabel->
  "In[213]:=",ExpressionUUID->"506b065d-6552-44e3-894f-04349fc14c90"],

Cell[BoxData[
 RowBox[{"t1", "=", 
  RowBox[{"CSSCascade", "[", 
   RowBox[{"\"\<@top-right\>\"", ",", "All", ",", "CSSData", ",", "All"}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.77704617012924*^9, 3.7770461883524857`*^9}, {
  3.7770469094645786`*^9, 3.77704690999815*^9}, {3.777049278349538*^9, 
  3.7770492793797803`*^9}, {3.7770504892849383`*^9, 3.7770505089463544`*^9}, {
  3.777118945788821*^9, 3.777118946880476*^9}, {3.7771235725986295`*^9, 
  3.777123582116604*^9}, {3.777131533477993*^9, 3.7771315855167284`*^9}, {
  3.7771316424314213`*^9, 3.777131669823794*^9}, {3.7771317392391253`*^9, 
  3.7771317398706427`*^9}, {3.7771323454566545`*^9, 3.777132345956651*^9}, {
  3.7771327560715647`*^9, 3.77713276146826*^9}, {3.7771328677384357`*^9, 
  3.7771329217715797`*^9}, {3.7771333774216857`*^9, 3.7771333804989753`*^9}, {
  3.7771339437714853`*^9, 3.777133944023815*^9}},
 CellLabel->
  "In[215]:=",ExpressionUUID->"b6df5902-7373-4727-8503-dc4a13af1b4d"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["More tests", "Section",
 CellChangeTimes->{{3.7760149605874233`*^9, 
  3.7760149614622793`*^9}},ExpressionUUID->"984776e7-63c8-440d-932b-\
34c7aba3ffc2"],

Cell[BoxData[
 RowBox[{
  RowBox[{
  "dir", "=", 
   "\"\<C:\\\\Users\\\\kevind\\\\Downloads\\\\postcss-parser-tests-master\\\\\
cases\>\""}], ";"}]], "Input",
 CellChangeTimes->{{3.7646933521244173`*^9, 3.7646933721081953`*^9}},
 CellLabel->"In[10]:=",ExpressionUUID->"b367bc15-c959-4630-a153-89540e25edfb"],

Cell[BoxData[
 RowBox[{
  RowBox[{"files", "=", 
   RowBox[{"FileNames", "[", 
    RowBox[{"\"\<*.css\>\"", ",", "dir"}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7646933788291025`*^9, 3.7646933996105967`*^9}, {
  3.7646948242473106`*^9, 3.764694831530016*^9}, {3.7649320302223477`*^9, 
  3.7649320312566957`*^9}},ExpressionUUID->"747eb4d1-fdbc-48aa-b121-\
4f019f10214a"],

Cell[BoxData[
 RowBox[{
  RowBox[{
  "str", "=", 
   "\"\<@charset 'Latin'; @import url(relative.css); @impoRt 'relative.css';\n\
p:before {content: counter(par-num, upper-roman) \\\". \\\"}\nh1 { font-size: \
24px; margin:2.1em 0px 10px 0px; padding-bottom:22.1; line-height:12px; \
color:#c00; unicode-range: U+26; color:rgb(10%, 5%, 90%)}\n\nh4 { \
margin-bottom:2px; color:#555; background:url(www.google.com) }\n\n/*\n\
table#bugs_main { border-collapse:collapse }\ntable#bugs_main tr th { \
border:1px solid #ccc; height:20px }\ntable#bugs_main tr td { border:1px \
solid #ccc; padding:6px }\n*/\n\n//table#bugs_main { background-color:#dddddd \
}\>\""}], ";"}]], "Input",
 CellChangeTimes->{{3.7651185340468616`*^9, 3.765118535568716*^9}, {
   3.7651200416794043`*^9, 3.765120049701787*^9}, 3.7651203764666452`*^9, {
   3.765123349539356*^9, 3.7651233496298876`*^9}, {3.765123478376706*^9, 
   3.765123487678041*^9}, {3.765123662584673*^9, 3.7651236644988875`*^9}, {
   3.765125923505644*^9, 3.7651259288399296`*^9}, {3.7651275499210777`*^9, 
   3.7651275615564485`*^9}, {3.7651890962533073`*^9, 
   3.7651890967151613`*^9}, {3.7683163519899855`*^9, 3.768316383727829*^9}, {
   3.7683196969007025`*^9, 3.768319719639203*^9}, {3.769184254238738*^9, 
   3.76918426862543*^9}},
 CellLabel->"In[22]:=",ExpressionUUID->"f5d158f7-692e-457a-84a7-07c2e3c5e99e"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTokenize", "@", "str"}], "===", 
  RowBox[{"CSSTokenize", "@", 
   RowBox[{"CSSUntokenize", "@", 
    RowBox[{"CSSTokenize", "@", "str"}]}]}]}]], "Input",
 CellChangeTimes->{{3.769792944677289*^9, 3.7697929645272193`*^9}},
 CellLabel->"In[23]:=",ExpressionUUID->"ece66c39-14c9-4834-9465-22bc4b5bb238"]
}, Closed]],

Cell[CellGroupData[{

Cell["calc() test", "Section",
 CellChangeTimes->{{3.7885359011496754`*^9, 3.7885359027122355`*^9}, {
  3.7912920383581486`*^9, 
  3.7912920384209805`*^9}},ExpressionUUID->"0c30684e-29a8-4d2d-86c0-\
7e4c6c6fa1fa"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.787084174276021*^9, 3.7870841859796944`*^9}, {
  3.7879495617067013`*^9, 3.787949562463678*^9}, {3.7886975322074647`*^9, 
  3.788697544351018*^9}, {3.7906037811820793`*^9, 3.7906037814333444`*^9}, {
  3.790604058293435*^9, 3.7906040587794633`*^9}},
 CellLabel->"In[31]:=",ExpressionUUID->"fa2e61a5-6a87-489a-bcac-3d8b831fc3c2"],

Cell[CellGroupData[{

Cell["var/calc/attr together in cascade only", "Subsection",
 CellChangeTimes->{{3.791036880531444*^9, 
  3.7910368905864997`*^9}},ExpressionUUID->"59da4b7c-4768-41b9-88ef-\
ffae3ef1c6e2"],

Cell[BoxData[
 RowBox[{
  RowBox[{"declarations", "=", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"\[LeftAssociation]", 
      RowBox[{
       RowBox[{"\"\<Property\>\"", "\[Rule]", "\"\<font-family\>\""}], ",", 
       RowBox[{"\"\<Value\>\"", "\[Rule]", "\"\<Times New Roman\>\""}], ",", 
       RowBox[{"\"\<Important\>\"", "\[Rule]", "False"}], ",", 
       RowBox[{"\"\<Interpretation\>\"", "\[Rule]", 
        RowBox[{"\[LeftAssociation]", 
         RowBox[{"FontFamily", "\[Rule]", "\"\<Times New Roman\>\""}], 
         "\[RightAssociation]"}]}], ",", 
       RowBox[{"\"\<Condition\>\"", "\[Rule]", "None"}]}], 
      "\[RightAssociation]"}], ",", 
     RowBox[{"\[LeftAssociation]", 
      RowBox[{
       RowBox[{"\"\<Property\>\"", "\[Rule]", "\"\<letter-spacing\>\""}], ",", 
       RowBox[{
       "\"\<Value\>\"", "\[Rule]", 
        "\"\<calc(var(--fontSizeAddition, 10px) + 20% + attr(size1 length))\>\
\""}], ",", 
       RowBox[{"\"\<Important\>\"", "\[Rule]", "False"}], ",", 
       RowBox[{"\"\<Interpretation\>\"", "\[Rule]", 
        RowBox[{"\[LeftAssociation]", 
         RowBox[{"\"\<CSSResolveValueAtComputeTime\>\"", "\[Rule]", 
          RowBox[{"\[LeftAssociation]", 
           RowBox[{
            RowBox[{
            "\"\<String\>\"", "\[Rule]", 
             "\"\<calc(var(--fontSizeAddition, 10px) + 20% + attr(size1 \
length, 20px))\>\""}], ",", 
            RowBox[{"\"\<Property\>\"", "\[Rule]", "\"\<letter-spacing\>\""}],
             ",", 
            RowBox[{"\"\<Namespaces\>\"", "\[Rule]", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{"\[LeftAssociation]", 
                RowBox[{
                 RowBox[{"\"\<Prefix\>\"", "\[Rule]", "\"\<foo\>\""}], ",", 
                 RowBox[{
                 "\"\<Namespace\>\"", "\[Rule]", 
                  "\"\<http://www.w3.org/1999/xhtml\>\""}], ",", 
                 RowBox[{"\"\<Default\>\"", "\[Rule]", "False"}]}], 
                "\[RightAssociation]"}], ",", 
               RowBox[{"\[LeftAssociation]", 
                RowBox[{
                 RowBox[{"\"\<Prefix\>\"", "\[Rule]", "None"}], ",", 
                 RowBox[{
                 "\"\<Namespace\>\"", "\[Rule]", 
                  "\"\<http://www.w3.org/1999/xhtml\>\""}], ",", 
                 RowBox[{"\"\<Default\>\"", "\[Rule]", "True"}]}], 
                "\[RightAssociation]"}]}], "}"}]}]}], 
           "\[RightAssociation]"}]}], "\[RightAssociation]"}]}], ",", 
       RowBox[{"\"\<Condition\>\"", "\[Rule]", "None"}]}], 
      "\[RightAssociation]"}], ",", 
     RowBox[{"\[LeftAssociation]", 
      RowBox[{
       RowBox[{"\"\<Property\>\"", "\[Rule]", "\"\<color\>\""}], ",", 
       RowBox[{"\"\<Value\>\"", "\[Rule]", "\"\<#eeeeee\>\""}], ",", 
       RowBox[{"\"\<Important\>\"", "\[Rule]", "False"}], ",", 
       RowBox[{"\"\<Interpretation\>\"", "\[Rule]", 
        RowBox[{"\[LeftAssociation]", 
         RowBox[{"FontColor", "\[Rule]", 
          InterpretationBox[
           ButtonBox[
            TooltipBox[
             GraphicsBox[{
               {GrayLevel[0], RectangleBox[{0, 0}]}, 
               {GrayLevel[0], RectangleBox[{1, -1}]}, 
               {RGBColor[
                 Rational[14, 15], 
                 Rational[14, 15], 
                 Rational[14, 15]], RectangleBox[{0, -1}, {2, 1}]}},
              AspectRatio->1,
              DefaultBaseStyle->"ColorSwatchGraphics",
              Frame->True,
              
              FrameStyle->RGBColor[
               0.6222222222222222, 0.6222222222222222, 0.6222222222222222],
              FrameTicks->None,
              
              ImageSize->
               Dynamic[{
                Automatic, 
                 1.35 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
                  Magnification])}],
              PlotRangePadding->None],
             StyleBox[
              RowBox[{"RGBColor", "[", 
                RowBox[{
                  FractionBox["14", "15"], ",", 
                  FractionBox["14", "15"], ",", 
                  FractionBox["14", "15"]}], "]"}], NumberMarks -> False]],
            Appearance->None,
            BaseStyle->{},
            BaselinePosition->Baseline,
            ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
              If[
               Not[
                AbsoluteCurrentValue["Deployed"]], 
               SelectionMove[Typeset`box$, All, Expression]; 
               FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
               FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[
                  Rational[14, 15], 
                  Rational[14, 15], 
                  Rational[14, 15]]; 
               FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
               MathLink`CallFrontEnd[
                 FrontEnd`AttachCell[Typeset`box$, 
                  FrontEndResource["RGBColorValueSelector"], {
                  0, {Left, Bottom}}, {Left, Top}, 
                  "ClosingActions" -> {
                   "SelectionDeparture", "ParentChanged", "EvaluatorQuit"}]]]],
            DefaultBaseStyle->{},
            Evaluator->Automatic,
            Method->"Preemptive"],
           RGBColor[
            Rational[14, 15], 
            Rational[14, 15], 
            Rational[14, 15]],
           Editable->False,
           Selectable->False]}], "\[RightAssociation]"}]}], ",", 
       RowBox[{"\"\<Condition\>\"", "\[Rule]", "None"}]}], 
      "\[RightAssociation]"}]}], "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7910350479590464`*^9, 3.7910350523800125`*^9}, 
   3.7910355210018463`*^9, 3.7910359144307113`*^9, {3.7910359539570847`*^9, 
   3.791035958944723*^9}, {3.79105344991756*^9, 3.7910534515641565`*^9}, {
   3.791229136881054*^9, 3.791229137031643*^9}, {3.7912886851697636`*^9, 
   3.7912887223410163`*^9}, {3.791289711332577*^9, 3.7912897188668194`*^9}, {
   3.791289753291952*^9, 3.791289755258162*^9}},
 CellLabel->"In[17]:=",ExpressionUUID->"0d6aede7-4cc8-4079-9852-c375fb18d285"],

Cell[BoxData[
 RowBox[{
  RowBox[{"d1", "=", 
   RowBox[{
   "CSSTools`CSSCustomProperties1`Private`\
replaceVarFunctionsInDeclarationList", "[", "declarations", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.791034385681753*^9, 3.7910344001417284`*^9}, {
   3.791035486656913*^9, 3.7910355035223827`*^9}, 
   3.791291747398451*^9},ExpressionUUID->"3750b6ed-d901-44cf-b3aa-\
7dba189da791"],

Cell[BoxData[
 RowBox[{
  RowBox[{"d2", "=", 
   RowBox[{
   "CSSTools`CSSValuesAndUnits3`Private`\
replaceAttrFunctionsInDeclarationList", "[", 
    RowBox[{"d1", ",", 
     RowBox[{"CSSTarget", "[", 
      RowBox[{"<|", 
       RowBox[{
        RowBox[{"\"\<Type\>\"", "\[Rule]", "\"\<\>\""}], ",", 
        RowBox[{"\"\<Namespace\>\"", "\[Rule]", "\"\<\>\""}], ",", 
        RowBox[{"\"\<Position\>\"", "\[Rule]", 
         RowBox[{"{", "}"}]}], ",", 
        RowBox[{"\"\<Attributes\>\"", "\[Rule]", 
         RowBox[{"<|", "|>"}]}], ",", 
        RowBox[{"\"\<ID\>\"", "\[Rule]", "\"\<\>\""}], ",", 
        RowBox[{"\"\<CaseSensitive\>\"", "\[Rule]", 
         RowBox[{"<|", "|>"}]}]}], "|>"}], "]"}]}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.791035537389698*^9, 3.791035544713312*^9}, {
   3.791035639969107*^9, 3.7910356564329243`*^9}, 
   3.7912917489672117`*^9},ExpressionUUID->"4a104588-50b6-4103-b48e-\
28cdcec1d882"],

Cell[BoxData[
 RowBox[{
  RowBox[{"d3", "=", 
   RowBox[{
   "CSSTools`CSSValuesAndUnits3`Private`\
replaceCalcFunctionsInDeclarationList", "[", "d2", "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.791228942694722*^9, 3.791228951671008*^9}, {
   3.7912895934970264`*^9, 3.791289594360779*^9}, 3.79128973312302*^9, 
   3.791291752047223*^9},ExpressionUUID->"7b508b68-3ca1-4edb-ba30-\
aa58c6fb8b5f"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSPropertyInterpreter`consumeProperty", "[", 
  RowBox[{"\"\<letter-spacing\>\"", ",", 
   RowBox[{"{", 
    RowBox[{"CSSToken", "[", 
     RowBox[{"\[LeftAssociation]", 
      RowBox[{
       RowBox[{"\"\<Type\>\"", "\[Rule]", "\"\<dimension\>\""}], ",", 
       RowBox[{"\"\<String\>\"", "\[Rule]", "\"\<\>\""}], ",", 
       RowBox[{"\"\<Value\>\"", "\[Rule]", "1"}], ",", 
       RowBox[{"\"\<Unit\>\"", "\[Rule]", "\"\<\>\""}], ",", 
       RowBox[{"\"\<Interpretation\>\"", "\[Rule]", 
        RowBox[{"30", "+", 
         RowBox[{"Scaled", "[", 
          FractionBox["1", "5"], "]"}]}]}]}], "\[RightAssociation]"}], "]"}], 
    "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.791229298431164*^9, 3.79122931809375*^9}, 
   3.7912877091736526`*^9, 3.7912884447960453`*^9, {3.79128867652423*^9, 
   3.791288679954383*^9}, 3.7912889504199457`*^9},
 CellLabel->"In[10]:=",ExpressionUUID->"d5247ab9-da00-4f41-97d9-2a18d8114533"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["attr() test", "Section",
 CellChangeTimes->{{3.789312354189881*^9, 
  3.7893123578742385`*^9}},ExpressionUUID->"f79f11bd-f968-4b90-af14-\
4286aa70e9ec"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.787084174276021*^9, 3.7870841859796944`*^9}},
 CellLabel->"In[2]:=",ExpressionUUID->"183368b5-d58e-471c-9aa1-147f47fae91f"],

Cell[BoxData[
 RowBox[{
  RowBox[{"cssExamplesDirectory", "=", 
   RowBox[{"(*", "\"\</Users/kevind/Desktop\>\"", "*)"}], 
   "\"\<C:\\\\Users\\\\kedai\\\\Desktop\>\""}], ";"}]], "Input",
 CellChangeTimes->{{3.7893111623641663`*^9, 3.7893111694812336`*^9}, {
  3.7903449206427593`*^9, 3.790344927611363*^9}, {3.7910336709828653`*^9, 
  3.79103367255034*^9}},
 CellLabel->
  "In[102]:=",ExpressionUUID->"8a9f6579-82bf-482f-9dc0-9d4d8e9855b7"],

Cell[BoxData[
 RowBox[{
  RowBox[{"doc", "=", 
   RowBox[{"Import", "[", 
    RowBox[{
     RowBox[{"FileNameJoin", "[", 
      RowBox[{"{", 
       RowBox[{"cssExamplesDirectory", ",", "\"\<index.html\>\""}], "}"}], 
      "]"}], ",", "\"\<XMLObject\>\"", ",", 
     RowBox[{"\"\<IncludeNamespaces\>\"", "\[Rule]", "True"}]}], "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7886990268613997`*^9, 3.788699040615517*^9}, 
   3.788699104073053*^9, 3.7886991382915926`*^9, 3.788699422513155*^9, {
   3.7892320932474623`*^9, 3.789232104670037*^9}, {3.789232176753185*^9, 
   3.789232207007429*^9}, {3.7892364499425364`*^9, 3.7892364548863173`*^9}, {
   3.789236919135064*^9, 3.789236923161087*^9}, {3.789237036270826*^9, 
   3.7892370365977*^9}, 3.789237892988584*^9, 3.789238660773924*^9, 
   3.7899336710693946`*^9},
 CellLabel->
  "In[103]:=",ExpressionUUID->"85d178f5-a9b3-481b-bd1c-bf29c9f5db53"],

Cell[BoxData[
 RowBox[{"cssData", "=", 
  RowBox[{"ExtractCSSFromXML", "[", 
   RowBox[{"doc", ",", 
    RowBox[{"\"\<RootDirectory\>\"", "\[Rule]", "cssExamplesDirectory"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7893090426466684`*^9, 3.7893090714866776`*^9}, {
   3.7893093762040815`*^9, 3.7893093778684564`*^9}, {3.7893098038973837`*^9, 
   3.789309809022767*^9}, 3.7893111816192207`*^9, {3.7893122213361387`*^9, 
   3.7893122216697083`*^9}, {3.7893122641252317`*^9, 3.7893122649891624`*^9}, 
   3.7905227534161453`*^9, 3.7912932970529594`*^9},
 CellLabel->
  "In[104]:=",ExpressionUUID->"8c380425-2046-455f-b3a1-63478fe8a071"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSData", "=", 
   RowBox[{"Normal", "@", "cssData"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7905228338560867`*^9, 3.7905228439247017`*^9}},
 CellLabel->
  "In[105]:=",ExpressionUUID->"775f012b-72d9-409f-bfcd-d0e7d6bb095a"],

Cell[BoxData[
 RowBox[{
  RowBox[{"target", "=", 
   InterpretationBox[
    StyleBox[
     TagBox[
      TooltipBox[
       FrameBox[
        TemplateBox[{
          StyleBox["\"XML \"", 
           RGBColor[0.5, 0, 1], Selectable -> False, StripOnInput -> False], 
          StyleBox["\"p\"", Selectable -> True, StripOnInput -> False]},
         "RowDefault"],
        Background->RGBColor[1, 0.9, 1],
        BaseStyle->{FontFamily -> Dynamic[
            CurrentValue[{StyleHints, "CodeFont"}]], FontWeight -> Bold, 
          FontColor -> GrayLevel[0.2]},
        FrameMargins->{{5, 5}, {2, 2}},
        FrameStyle->Directive[
          RGBColor[0.5, 0, 1], 
          AbsoluteThickness[1]],
        ImageMargins->2,
        RoundingRadius->4,
        StripOnInput->False],
       RowBox[{"{", 
         RowBox[{"2", ",", "3", ",", "2", ",", "3", ",", "12"}], "}"}]],
      Annotation[#, {2, 3, 2, 3, 12}, "Tooltip"]& ],
     Editable->False,
     StripOnInput->False,
     ShowStringCharacters->False],
    CSSTools`CSSTarget[
     Association[
     "Type" -> "p", "Namespace" -> "http://www.w3.org/1999/xhtml", 
      "Position" -> {2, 3, 2, 3, 12}, "Attributes" -> 
      Association[
       "size1" -> Association["Namespace" -> None, "Value" -> "30px"]], "ID" -> 
      "id", "CaseSensitive" -> 
      Association[
       "Type" -> False, "AttributeName" -> False, "AttributeValue" -> 
        False]]]]}], ";"}]], "Input",
 CellChangeTimes->{{3.7905290973798857`*^9, 3.790529109473493*^9}, {
  3.7912947170318766`*^9, 3.791294717576872*^9}},
 CellLabel->
  "In[106]:=",ExpressionUUID->"ba2a8fc1-6321-4315-a25d-c96b87de3cdc"],

Cell[BoxData[
 RowBox[{
  RowBox[{"scope", "=", "Cell"}], ";"}]], "Input",
 CellChangeTimes->{{3.790530507490597*^9, 3.7905305133614483`*^9}},
 CellLabel->
  "In[107]:=",ExpressionUUID->"19eec289-d590-49a7-9c5a-fabc2e853ef8"],

Cell[BoxData[
 RowBox[{"lineage", "=", 
  RowBox[{"Append", "[", 
   RowBox[{
    RowBox[{"CSSTools`CSSStyleSheetInterpreter`Private`parents", "[", 
     RowBox[{"target", "[", "\"\<Position\>\"", "]"}], "]"}], ",", 
    RowBox[{"target", "[", "\"\<Position\>\"", "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.79052911495437*^9, 3.790529123982933*^9}},
 CellLabel->
  "In[108]:=",ExpressionUUID->"e4ab356e-aa63-4170-81ee-36e6e53da1ad"],

Cell[BoxData[
 RowBox[{"generations", "=", 
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"<|", 
      RowBox[{
       RowBox[{"\"\<Property\>\"", "\[Rule]", "\"\<dummy\>\""}], ",", 
       RowBox[{"\"\<Value\>\"", "\[Rule]", "\"\<dummy\>\""}], ",", 
       RowBox[{"\"\<Interpretation\>\"", "\[Rule]", 
        RowBox[{"Missing", "[", "\"\<Not supported.\>\"", "]"}]}], ",", 
       RowBox[{"\"\<Important\>\"", "\[Rule]", "False"}], ",", 
       RowBox[{"\"\<Condition\>\"", "\[Rule]", "None"}]}], "|>"}], "}"}], ",", 
    RowBox[{
     RowBox[{"Length", "[", "lineage", "]"}], "+", "1"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.790529133291507*^9, 3.790529133292366*^9}},
 CellLabel->
  "In[109]:=",ExpressionUUID->"d9b8c116-051f-4f5d-b019-4cf451aabbe7"],

Cell[BoxData[
 RowBox[{
  RowBox[{"i", "=", "1"}], ";"}]], "Input",
 CellChangeTimes->{{3.7905304170014887`*^9, 3.79053041751782*^9}, {
   3.790530562095767*^9, 3.790530562171891*^9}, {3.7905306594357843`*^9, 
   3.7905306595121927`*^9}, {3.7905316096458607`*^9, 3.7905316714043283`*^9}, 
   3.7912954727375383`*^9, 3.791295902143973*^9, 3.791297108767327*^9, 
   3.791297842230467*^9, 3.791299531291213*^9},
 CellLabel->"In[13]:=",ExpressionUUID->"096b8ed6-f073-4fde-9cfd-b3d020048113"],

Cell[BoxData[
 RowBox[{"CSSDataSubset", "=", 
  RowBox[{"Pick", "[", 
   RowBox[{"CSSData", ",", 
    RowBox[{
     RowBox[{
      RowBox[{"MemberQ", "[", 
       RowBox[{"#", ",", 
        RowBox[{"lineage", "[", 
         RowBox[{"[", "i", "]"}], "]"}]}], "]"}], "&"}], "/@", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        RowBox[{"Through", "[", 
         RowBox[{"#", "[", "\"\<Position\>\"", "]"}], "]"}], "&"}], "/@", 
       RowBox[{"CSSData", "[", 
        RowBox[{"[", 
         RowBox[{"All", ",", "\"\<Targets\>\""}], "]"}], "]"}]}], ")"}]}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.790530413654242*^9, 3.790530413655197*^9}},
 CellLabel->
  "In[110]:=",ExpressionUUID->"09f49efb-01fa-4e49-b618-05853156afdc"],

Cell[BoxData[
 RowBox[{"declarations", "=", 
  RowBox[{
  "CSSTools`CSSStyleSheetInterpreter`Private`cssCascadeDeclarations", "[", 
   RowBox[{"scope", ",", "CSSDataSubset", ",", "All"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.791300632487767*^9, 3.7913006462489223`*^9}},
 CellLabel->"In[15]:=",ExpressionUUID->"7c25ebf5-03fd-44e9-95a0-437a8696d4c4"],

Cell[CellGroupData[{

Cell["aside: replaceVarFunctionsInDeclarationList", "Subsection",
 CellChangeTimes->{{3.7912950749589214`*^9, 
  3.791295079182102*^9}},ExpressionUUID->"18ac610e-26a0-4a82-a911-\
56b904fa5233"],

Cell[BoxData[
 RowBox[{"declarations", "=", 
  RowBox[{"First", "@", 
   RowBox[{"CSSDataSubset", "[", 
    RowBox[{"[", 
     RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}]}]}]], "Input",
 CellChangeTimes->{{3.7912950903412867`*^9, 3.7912951249783688`*^9}, 
   3.791295385241439*^9, {3.791295416129406*^9, 3.7912954170888767`*^9}},
 CellLabel->"In[86]:=",ExpressionUUID->"cace464e-def9-457a-bed2-ce497089768a"],

Cell[BoxData[
 RowBox[{"check", "=", 
  RowBox[{"declarations", "[", 
   RowBox[{"[", 
    RowBox[{"All", ",", "\"\<Interpretation\>\""}], "]"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.791295088980603*^9, 3.7912950889816*^9}},
 CellLabel->"In[87]:=",ExpressionUUID->"d48e2cdf-f749-48f5-837c-0ab7eecb72bf"]
}, Closed]],

Cell[CellGroupData[{

Cell["moving on...", "Subsection",
 CellChangeTimes->{{3.7912954894965467`*^9, 
  3.791295490903624*^9}},ExpressionUUID->"4145864b-4ecd-4ea9-850e-\
f6ca80fbcf11"],

Cell[BoxData[
 RowBox[{"customPropertyDefinitions", "=", 
  RowBox[{"generations", "[", 
   RowBox[{"[", 
    RowBox[{"i", ",", "All", ",", "\"\<Interpretation\>\""}], "]"}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.791298069001793*^9, 3.791298069001793*^9}},
 CellLabel->
  "In[140]:=",ExpressionUUID->"e5ba3e4e-db2f-42a1-9ac2-8234cfa08ecc"],

Cell[BoxData[
 RowBox[{"Pick", "[", 
  RowBox[{"customPropertyDefinitions", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"(", 
      RowBox[{
       RowBox[{"AssociationQ", "[", "#", "]"}], "&&", 
       RowBox[{"KeyExistsQ", "[", 
        RowBox[{"#", ",", "\"\<CSSCustomPropertyDefinition\>\""}], "]"}]}], 
      ")"}], "&"}], "/@", "customPropertyDefinitions"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.791298078294396*^9, 3.791298078294396*^9}, {
   3.7912981351394863`*^9, 3.7912981532801495`*^9}, 3.79129820685384*^9},
 CellLabel->
  "In[143]:=",ExpressionUUID->"89584a5e-2239-475a-adf0-8e5b3fdab0b8"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"(", 
    RowBox[{"#Name", "\[Rule]", "#Value"}], ")"}], "&"}], "/@", 
  RowBox[{"Flatten", "@", 
   RowBox[{"Values", "@", "%"}]}]}]], "Input",
 CellChangeTimes->{
  3.7912981565869403`*^9, {3.791298251013648*^9, 3.791298256216377*^9}},
 CellLabel->
  "In[144]:=",ExpressionUUID->"52f24e78-7a70-43d1-92ed-3d669d3b6e0a"],

Cell[BoxData[
 RowBox[{"If", "[", 
  RowBox[{
   RowBox[{
    RowBox[{
    "DownValues", "[", 
     "CSSTools`CSSCustomProperties1`Private`\
replaceVarFunctionsInDeclarationList", "]"}], "=!=", 
    RowBox[{"{", "}"}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"CSSDataSubset", "[", 
      RowBox[{"[", 
       RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}], "=", 
     RowBox[{
     "CSSTools`CSSCustomProperties1`Private`\
replaceVarFunctionsInDeclarationList", "/@", 
      RowBox[{"CSSDataSubset", "[", 
       RowBox[{"[", 
        RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}]}]}], ";"}]}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.790530430639724*^9, 3.7905304306405783`*^9}},
 CellLabel->
  "In[116]:=",ExpressionUUID->"7397e0a4-6e24-4c41-9505-9a905b42858b"],

Cell[BoxData["CSSDataSubset"], "Input",
 CellLabel->
  "In[117]:=",ExpressionUUID->"b58c8610-a965-4e62-a89f-8f7c27a7a42a"],

Cell[BoxData[
 RowBox[{
  RowBox[{"If", "[", 
   RowBox[{
    RowBox[{
     RowBox[{
     "DownValues", "[", 
      "CSSTools`CSSValuesAndUnits3`Private`\
replaceAttrFunctionsInDeclarationList", "]"}], "=!=", 
     RowBox[{"{", "}"}]}], ",", 
    RowBox[{
     RowBox[{"Do", "[", 
      RowBox[{
       RowBox[{
        RowBox[{"element", "=", 
         RowBox[{"First", "@", 
          RowBox[{"Select", "[", 
           RowBox[{
            RowBox[{"CSSDataSubset", "[", 
             RowBox[{"[", 
              RowBox[{"j", ",", "\"\<Targets\>\""}], "]"}], "]"}], ",", 
            RowBox[{
             RowBox[{"MatchQ", "[", 
              RowBox[{
               RowBox[{"#", "[", "\"\<Position\>\"", "]"}], ",", 
               RowBox[{"lineage", "[", 
                RowBox[{"[", "i", "]"}], "]"}]}], "]"}], "&"}]}], "]"}]}]}], 
        ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"CSSDataSubset", "[", 
          RowBox[{"[", 
           RowBox[{"j", ",", "\"\<Block\>\""}], "]"}], "]"}], "=", 
         RowBox[{
         "CSSTools`CSSValuesAndUnits3`Private`\
replaceAttrFunctionsInDeclarationList", "[", 
          RowBox[{
           RowBox[{"CSSDataSubset", "[", 
            RowBox[{"[", 
             RowBox[{"j", ",", "\"\<Block\>\""}], "]"}], "]"}], ",", 
           "element"}], "]"}]}], ";"}], ",", 
       RowBox[{"{", 
        RowBox[{"j", ",", 
         RowBox[{"Length", "[", "CSSDataSubset", "]"}]}], "}"}]}], "]"}], 
     ";"}]}], "]"}], ";"}]], "Input",
 CellChangeTimes->{{3.790530460191833*^9, 3.790530460193618*^9}},
 CellLabel->
  "In[118]:=",ExpressionUUID->"dd9789b1-75d0-4ccb-af67-35274762ca5a"],

Cell[BoxData[
 RowBox[{
  RowBox[{"If", "[", 
   RowBox[{
    RowBox[{
     RowBox[{
     "DownValues", "[", 
      "CSSTools`CSSValuesAndUnits3`Private`\
replaceRemDimensionsInDeclarationList", "]"}], "=!=", 
     RowBox[{"{", "}"}]}], ",", 
    RowBox[{"(*", 
     RowBox[{
      RowBox[{"should", " ", "not", " ", 
       RowBox[{"have", "@", "media"}], " ", "queries", " ", "to", " ", 
       "worry", " ", "about", " ", "in", " ", "root", " ", "element"}], ";", 
      RowBox[{
      "just", " ", "take", " ", "the", " ", "raw", " ", "value", " ", "of", 
       " ", "the", " ", "FontSize", " ", "if", " ", "it", " ", "exists"}]}], 
     "*)"}], 
    RowBox[{"(*", 
     RowBox[{
     "start", " ", "with", " ", "all", " ", "rules", " ", "that", " ", 
      "affect", " ", "the", " ", "root", " ", 
      RowBox[{"i", ".", "e", ".", 
       RowBox[{"lineage", "[", 
        RowBox[{"[", "1", "]"}], "]"}]}]}], "*)"}], 
    RowBox[{
     RowBox[{"temp", "=", 
      RowBox[{"Pick", "[", 
       RowBox[{"CSSData", ",", 
        RowBox[{
         RowBox[{
          RowBox[{"MemberQ", "[", 
           RowBox[{"#", ",", 
            RowBox[{"lineage", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}], "]"}], "&"}], "/@", 
         RowBox[{"(", 
          RowBox[{
           RowBox[{
            RowBox[{"Through", "[", 
             RowBox[{"#", "[", "\"\<Position\>\"", "]"}], "]"}], "&"}], "/@", 
           RowBox[{"CSSData", "[", 
            RowBox[{"[", 
             RowBox[{"All", ",", "\"\<Targets\>\""}], "]"}], "]"}]}], 
          ")"}]}]}], "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"(*", 
      RowBox[{
       RowBox[{
       "cascade", " ", "dictates", " ", "that", " ", "we", " ", "take", " ", 
        "the", " ", "last", " ", "declaration", " ", "that", " ", "affects", 
        " ", "font"}], "-", "size"}], "*)"}], 
     RowBox[{"temp", "=", 
      RowBox[{"FirstCase", "[", 
       RowBox[{
        RowBox[{"Reverse", "@", 
         RowBox[{"Flatten", "@", 
          RowBox[{"temp", "[", 
           RowBox[{"[", 
            RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}]}]}], ",", 
        RowBox[{
         RowBox[{"kvp", ":", 
          RowBox[{"KeyValuePattern", "[", 
           RowBox[{"{", 
            RowBox[{"\"\<Property\>\"", "\[Rule]", 
             RowBox[{"p_", "/;", 
              RowBox[{"(", 
               RowBox[{
                RowBox[{"StringQ", "[", "p", "]"}], "&&", 
                RowBox[{"StringMatchQ", "[", 
                 RowBox[{"p", ",", "\"\<font-size\>\"", ",", 
                  RowBox[{"IgnoreCase", "\[Rule]", 
                   RowBox[{"!", "case"}]}]}], "]"}]}], ")"}]}]}], "}"}], 
           "]"}]}], "\[RuleDelayed]", 
         RowBox[{"kvp", "[", "\"\<Value\>\"", "]"}]}], ",", "None"}], "]"}]}],
      ";", "\[IndentingNewLine]", 
     RowBox[{"(*", 
      RowBox[{
       RowBox[{
        RowBox[{"if", " ", "font"}], "-", 
        RowBox[{"size", " ", "declared", " ", "in", " ", "root"}]}], ",", 
       RowBox[{"then", " ", "use", " ", "its", " ", "value"}], ",", 
       "otherwise"}], "*)"}], 
     RowBox[{"If", "[", 
      RowBox[{
       RowBox[{"temp", "=!=", "None"}], ",", 
       RowBox[{
        RowBox[{"temp", "=", 
         RowBox[{"CSSTokenize", "[", "temp", "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"If", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"Length", "[", "temp", "]"}], "\[Equal]", "1"}], ",", 
          RowBox[{
           RowBox[{"size", "=", 
            RowBox[{
             RowBox[{"First", "[", "temp", "]"}], "[", "\"\<Value\>\"", 
             "]"}]}], ";", 
           RowBox[{"dim", "=", 
            RowBox[{
             RowBox[{"First", "[", "temp", "]"}], "[", "\"\<Unit\>\"", 
             "]"}]}]}], ",", 
          RowBox[{"size", "=", 
           RowBox[{"dim", "=", "None"}]}]}], "]"}], ";"}], ",", 
       RowBox[{
        RowBox[{"size", "=", 
         RowBox[{"dim", "=", "None"}]}], ";"}]}], "]"}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"CSSDataSubset", "[", 
       RowBox[{"[", 
        RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}], "=", 
      RowBox[{
       RowBox[{
        RowBox[{
        "CSSTools`CSSValuesAndUnits3`Private`\
replaceRemDimensionsInDeclarationList", "[", 
         RowBox[{"#", ",", "size", ",", "dim"}], "]"}], "&"}], "/@", 
       RowBox[{"CSSDataSubset", "[", 
        RowBox[{"[", 
         RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}]}]}], ";"}]}], 
   "]"}], ";"}]], "Input",
 CellChangeTimes->{{3.790530471262086*^9, 3.790530471263048*^9}, {
   3.790530592536974*^9, 3.790530593243745*^9}, {3.790530759076473*^9, 
   3.790530760250908*^9}, {3.790530998163937*^9, 3.7905309990286903`*^9}, 
   3.7912936398349495`*^9},
 CellLabel->
  "In[119]:=",ExpressionUUID->"818f73c9-d698-47c0-9f0a-e74055c639ec"],

Cell[BoxData[
 RowBox[{"If", "[", 
  RowBox[{
   RowBox[{
    RowBox[{
    "DownValues", "[", 
     "CSSTools`CSSValuesAndUnits3`Private`\
replaceCalcFunctionsInDeclarationList", "]"}], "=!=", 
    RowBox[{"{", "}"}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"CSSDataSubset", "[", 
      RowBox[{"[", 
       RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}], "=", 
     RowBox[{
      RowBox[{
       RowBox[{
       "CSSTools`CSSValuesAndUnits3`Private`\
replaceCalcFunctionsInDeclarationList", "[", "#", "]"}], "&"}], "/@", 
      RowBox[{"CSSDataSubset", "[", 
       RowBox[{"[", 
        RowBox[{"All", ",", "\"\<Block\>\""}], "]"}], "]"}]}]}], ";"}]}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.7912936859822283`*^9, 3.791293685983226*^9}, 
   3.791293773308676*^9},
 CellLabel->
  "In[120]:=",ExpressionUUID->"65771b0a-8a6c-4f31-83a0-6f665969b27d"],

Cell[BoxData["CSSDataSubset"], "Input",
 CellChangeTimes->{{3.7912936465734205`*^9, 3.7912936609163017`*^9}},
 CellLabel->
  "In[121]:=",ExpressionUUID->"2460c552-4371-45de-98ed-86877deb9fa7"],

Cell[BoxData[
 RowBox[{"declarations", "=", 
  RowBox[{
  "CSSTools`CSSStyleSheetInterpreter`Private`cssCascadeDeclarations", "[", 
   RowBox[{"scope", ",", "CSSDataSubset", ",", "All"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.790530496921093*^9, 3.790530527569469*^9}},
 CellLabel->
  "In[122]:=",ExpressionUUID->"01ebc970-a00c-4d15-b8b3-2097ee5916b3"],

Cell[BoxData[
 RowBox[{"declarations", "//", "Dataset"}]], "Input",
 CellChangeTimes->{{3.7912939533482156`*^9, 3.791293957451539*^9}},
 CellLabel->
  "In[123]:=",ExpressionUUID->"9bbefd05-9485-43e9-ac51-2c7473cb8a00"],

Cell[BoxData[
 RowBox[{"itemsToResolve", "=", 
  RowBox[{"Flatten", "@", 
   RowBox[{"Position", "[", 
    RowBox[{
     RowBox[{
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{"AssociationQ", "[", "#", "]"}], "&&", 
         RowBox[{"KeyExistsQ", "[", 
          RowBox[{"#", ",", "\"\<CSSResolveValueAtComputeTime\>\""}], "]"}]}],
         ")"}], "&"}], "/@", 
      RowBox[{"declarations", "[", 
       RowBox[{"[", 
        RowBox[{"All", ",", "\"\<Interpretation\>\""}], "]"}], "]"}]}], ",", 
     "True"}], "]"}]}]}]], "Input",
 CellChangeTimes->{{3.7905305369120693`*^9, 3.790530536912814*^9}},
 CellLabel->
  "In[124]:=",ExpressionUUID->"c55f518c-b446-4935-afdd-f85cd9e1b02d"],

Cell[BoxData[
 RowBox[{
  RowBox[{"j", "=", "2"}], ";"}]], "Input",
 CellChangeTimes->{{3.790531741306849*^9, 3.790531741991826*^9}},
 CellLabel->"In[35]:=",ExpressionUUID->"c1d0690b-43fa-49cd-9f37-ce68c26ad248"],

Cell[BoxData[
 RowBox[{"prop", "=", 
  RowBox[{"declarations", "[", 
   RowBox[{"[", 
    RowBox[{
    "j", ",", "\"\<Interpretation\>\"", ",", 
     "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<Property\>\""}], "]"}],
    "]"}]}]], "Input",
 CellChangeTimes->{3.791294067877118*^9},
 CellLabel->"In[36]:=",ExpressionUUID->"df85e3d6-1354-4042-96fd-0ce6d2885267"],

Cell[BoxData[
 RowBox[{"tokens", "=", 
  RowBox[{"If", "[", 
   RowBox[{
    RowBox[{"KeyExistsQ", "[", 
     RowBox[{
      RowBox[{"declarations", "[", 
       RowBox[{"[", 
        RowBox[{
        "i", ",", "\"\<Interpretation\>\"", ",", 
         "\"\<CSSResolveValueAtComputeTime\>\""}], "]"}], "]"}], ",", 
      "\"\<Tokens\>\""}], "]"}], ",", 
    RowBox[{"declarations", "[", 
     RowBox[{"[", 
      RowBox[{
      "i", ",", "\"\<Interpretation\>\"", ",", 
       "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<Tokens\>\""}], "]"}],
      "]"}], ",", 
    RowBox[{"CSSTokenize", "@", 
     RowBox[{"declarations", "[", 
      RowBox[{"[", 
       RowBox[{
       "i", ",", "\"\<Interpretation\>\"", ",", 
        "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<String\>\""}], 
       "]"}], "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.791294074408045*^9, 
  3.791294074408045*^9}},ExpressionUUID->"612ecc2c-5ed0-4fad-b428-\
b8c64cdad4d4"],

Cell[BoxData[
 RowBox[{"CSSTokenize", "@", 
  RowBox[{"declarations", "[", 
   RowBox[{"[", 
    RowBox[{
    "j", ",", "\"\<Interpretation\>\"", ",", 
     "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<String\>\""}], "]"}], 
   "]"}]}]], "Input",
 CellLabel->
  "In[181]:=",ExpressionUUID->"aa70da9b-0ab4-42f9-a9cb-4f529a06913e"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSPropertyInterpreter`consumeProperty", "[", 
  RowBox[{
   RowBox[{"declarations", "[", 
    RowBox[{"[", 
     RowBox[{
     "j", ",", "\"\<Interpretation\>\"", ",", 
      "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<Property\>\""}], 
     "]"}], "]"}], ",", 
   RowBox[{"CSSTokenize", "@", 
    RowBox[{"declarations", "[", 
     RowBox[{"[", 
      RowBox[{
      "j", ",", "\"\<Interpretation\>\"", ",", 
       "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<String\>\""}], "]"}],
      "]"}]}]}], "]"}]], "Input",
 CellLabel->
  "In[182]:=",ExpressionUUID->"e0e55113-954b-4f65-9fcf-2c0fbf37e75a"],

Cell[BoxData[
 RowBox[{"Do", "[", 
  RowBox[{
   RowBox[{
    RowBox[{"declarations", "[", 
     RowBox[{"[", 
      RowBox[{"j", ",", "\"\<Interpretation\>\""}], "]"}], "]"}], "=", 
    RowBox[{"CSSTools`CSSPropertyInterpreter`consumeProperty", "[", 
     RowBox[{
      RowBox[{"declarations", "[", 
       RowBox[{"[", 
        RowBox[{
        "j", ",", "\"\<Interpretation\>\"", ",", 
         "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<Property\>\""}], 
        "]"}], "]"}], ",", 
      RowBox[{"CSSTokenize", "@", 
       RowBox[{"declarations", "[", 
        RowBox[{"[", 
         RowBox[{
         "j", ",", "\"\<Interpretation\>\"", ",", 
          "\"\<CSSResolveValueAtComputeTime\>\"", ",", "\"\<String\>\""}], 
         "]"}], "]"}]}]}], "]"}]}], ",", 
   RowBox[{"{", 
    RowBox[{"j", ",", "itemsToResolve"}], "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.790531121878523*^9, 3.790531134225016*^9}},
 CellLabel->
  "In[176]:=",ExpressionUUID->"90f9477d-aa11-4950-a4b3-ac6b499cc3c0"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"inheritableProps", "=", 
   RowBox[{"Union", "@", 
    RowBox[{"Flatten", "@", 
     RowBox[{
      RowBox[{"generations", "[", 
       RowBox[{"[", "i", "]"}], "]"}], "[", 
      RowBox[{"[", 
       RowBox[{"All", ",", "\"\<Property\>\""}], "]"}], "]"}]}]}]}], 
  ";"}], "\n", 
 RowBox[{
  RowBox[{"inheritableProps", "=", 
   RowBox[{"Pick", "[", 
    RowBox[{"inheritableProps", ",", 
     RowBox[{
      RowBox[{
       RowBox[{"(", 
        RowBox[{"Or", "@@", 
         RowBox[{"Through", "[", 
          RowBox[{
          "CSSTools`CSSStyleSheetInterpreter`inheritedPropertyRules", "[", 
           "#", "]"}], "]"}]}], ")"}], "&"}], "/@", "inheritableProps"}]}], 
    "]"}]}], ";"}], "\n", 
 RowBox[{
  RowBox[{
   RowBox[{"generations", "[", 
    RowBox[{"[", 
     RowBox[{"i", "+", "1"}], "]"}], "]"}], "=", 
   RowBox[{"Join", "[", 
    RowBox[{"declarations", ",", 
     RowBox[{"Select", "[", 
      RowBox[{
       RowBox[{"generations", "[", 
        RowBox[{"[", "i", "]"}], "]"}], ",", 
       RowBox[{
        RowBox[{"MatchQ", "[", 
         RowBox[{"#Property", ",", 
          RowBox[{"Alternatives", "@@", "inheritableProps"}]}], "]"}], 
        "&"}]}], "]"}]}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.790530545090316*^9, 3.790530545091111*^9}, {
  3.790530631008943*^9, 3.790530636384145*^9}},
 CellLabel->
  "In[125]:=",ExpressionUUID->"88a9de4b-2b21-4603-a712-ccaa27d1dc34"],

Cell[BoxData[
 RowBox[{"CSSInheritance", "[", 
  RowBox[{
   InterpretationBox[
    StyleBox[
     TagBox[
      TooltipBox[
       FrameBox[
        TemplateBox[{
          StyleBox["\"XML \"", 
           RGBColor[0.5, 0, 1], Selectable -> False, StripOnInput -> False], 
          StyleBox["\"p\"", Selectable -> True, StripOnInput -> False]},
         "RowDefault"],
        Background->RGBColor[1, 0.9, 1],
        BaseStyle->{FontFamily -> Dynamic[
            CurrentValue[{StyleHints, "CodeFont"}]], FontWeight -> Bold, 
          FontColor -> GrayLevel[0.2]},
        FrameMargins->{{5, 5}, {2, 2}},
        FrameStyle->Directive[
          RGBColor[0.5, 0, 1], 
          AbsoluteThickness[1]],
        ImageMargins->2,
        RoundingRadius->4,
        StripOnInput->False],
       RowBox[{"{", 
         RowBox[{"2", ",", "3", ",", "2", ",", "3", ",", "8"}], "}"}]],
      Annotation[#, {2, 3, 2, 3, 8}, "Tooltip"]& ],
     Editable->False,
     StripOnInput->False,
     ShowStringCharacters->False],
    CSSTools`CSSTarget[
     Association[
     "Type" -> "p", "Namespace" -> "http://www.w3.org/1999/xhtml", 
      "Position" -> {2, 3, 2, 3, 8}, "Attributes" -> Association[], "ID" -> 
      "id", "CaseSensitive" -> 
      Association[
       "Type" -> False, "AttributeName" -> False, "AttributeValue" -> 
        False]]]], ",", "Cell", ",", "cssData"}], "]"}]], "Input",
 CellChangeTimes->{{3.790523313141055*^9, 3.790523323365736*^9}},
 CellLabel->"In[92]:=",ExpressionUUID->"350b4ca4-8194-42ef-bb84-dc777ef60f4b"],

Cell[BoxData[
 RowBox[{"gg", "=", 
  RowBox[{"CSSInheritance", "[", 
   RowBox[{
    InterpretationBox[
     StyleBox[
      TagBox[
       TooltipBox[
        FrameBox[
         TemplateBox[{
           StyleBox["\"XML \"", 
            RGBColor[0.5, 0, 1], Selectable -> False, StripOnInput -> False], 
           
           StyleBox["\"h3\"", Selectable -> True, StripOnInput -> False]},
          "RowDefault"],
         Background->RGBColor[1, 0.9, 1],
         BaseStyle->{FontFamily -> Dynamic[
             CurrentValue[{StyleHints, "CodeFont"}]], FontWeight -> Bold, 
           FontColor -> GrayLevel[0.2]},
         FrameMargins->{{5, 5}, {2, 2}},
         FrameStyle->Directive[
           RGBColor[0.5, 0, 1], 
           AbsoluteThickness[1]],
         ImageMargins->2,
         RoundingRadius->4,
         StripOnInput->False],
        RowBox[{"{", 
          RowBox[{"2", ",", "3", ",", "2", ",", "3", ",", "6"}], "}"}]],
       Annotation[#, {2, 3, 2, 3, 6}, "Tooltip"]& ],
      Editable->False,
      StripOnInput->False,
      ShowStringCharacters->False],
     CSSTools`CSSTarget[
      Association[
      "Type" -> "h3", "Namespace" -> "http://www.w3.org/1999/xhtml", 
       "Position" -> {2, 3, 2, 3, 6}, "Attributes" -> Association[], "ID" -> 
       "id", "CaseSensitive" -> 
       Association[
        "Type" -> False, "AttributeName" -> False, "AttributeValue" -> 
         False]]]], ",", "Cell", ",", "cssData"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.79010534875777*^9, 3.79010536126188*^9}, {
  3.790345308628499*^9, 3.790345310140183*^9}, {3.790350583616227*^9, 
  3.790350583862732*^9}},
 CellLabel->"In[18]:=",ExpressionUUID->"cae601fd-fa99-4298-8033-59a4d1953e2b"],

Cell[BoxData[
 RowBox[{"CSSInheritance", "[", 
  RowBox[{
   InterpretationBox[
    StyleBox[
     TagBox[
      TooltipBox[
       FrameBox[
        TemplateBox[{
          StyleBox["\"XML \"", 
           RGBColor[0.5, 0, 1], Selectable -> False, StripOnInput -> False], 
          StyleBox["\"h3\"", Selectable -> True, StripOnInput -> False]},
         "RowDefault"],
        Background->RGBColor[1, 0.9, 1],
        BaseStyle->{FontFamily -> Dynamic[
            CurrentValue[{StyleHints, "CodeFont"}]], FontWeight -> Bold, 
          FontColor -> GrayLevel[0.2]},
        FrameMargins->{{5, 5}, {2, 2}},
        FrameStyle->Directive[
          RGBColor[0.5, 0, 1], 
          AbsoluteThickness[1]],
        ImageMargins->2,
        RoundingRadius->4,
        StripOnInput->False],
       RowBox[{"{", 
         RowBox[{"2", ",", "3", ",", "2", ",", "3", ",", "10"}], "}"}]],
      Annotation[#, {2, 3, 2, 3, 10}, "Tooltip"]& ],
     Editable->False,
     StripOnInput->False,
     ShowStringCharacters->False],
    CSSTools`CSSTarget[
     Association[
     "Type" -> "h3", "Namespace" -> "http://www.w3.org/1999/xhtml", 
      "Position" -> {2, 3, 2, 3, 10}, "Attributes" -> 
      Association[
       "color" -> Association["Namespace" -> None, "Value" -> "red"]], "ID" -> 
      "id", "CaseSensitive" -> 
      Association[
       "Type" -> False, "AttributeName" -> False, "AttributeValue" -> 
        False]]]], ",", "Cell", ",", "cssData"}], "]"}]], "Input",
 CellChangeTimes->{{3.790356387735115*^9, 3.790356394011237*^9}},
 CellLabel->"In[19]:=",ExpressionUUID->"0107be7d-88c6-44f2-8421-54ec4b982b01"]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell["Custom Variables testing", "Section",
 CellChangeTimes->{{3.7870841303384924`*^9, 
  3.7870841348823695`*^9}},ExpressionUUID->"319dce68-1c3c-421b-94ad-\
74858f5bf321"],

Cell[BoxData[
 RowBox[{"cssData", "=", 
  RowBox[{"ImportString", "[", 
   RowBox[{
   "\"\<h1 {--customVariable:10px;border-right-width:var(--customVariable, \
20px);border-left-width:var(--customvariable, 20px)}\>\"", ",", 
    "\"\<CSS\>\""}], "]"}]}]], "Input",
 CellLabel->"In[50]:=",ExpressionUUID->"82757c91-f22f-4675-8c61-c3f1ef3b9f57"],

Cell[BoxData[
 RowBox[{"CSSCascade", "[", 
  RowBox[{"\"\<border\>\"", ",", "Cell", ",", "cssData", ",", "All"}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.7928826991915364`*^9, 3.792882699674245*^9}, {
  3.792884227354128*^9, 3.7928842295252905`*^9}},
 CellLabel->"In[52]:=",ExpressionUUID->"5baea74a-7e53-423b-9948-c0341dcf2644"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSStyleSheetInterpreter`$Debug", "=", "True"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.792949631519828*^9, 3.7929496321351833`*^9}},
 CellLabel->
  "In[121]:=",ExpressionUUID->"423b1b5b-30c1-4901-b56b-8256c8dbc94c"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSStyleSheetInterpreter`$Debug", "=", "False"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.792882660443169*^9, 3.7928826659365025`*^9}, {
  3.792884254054699*^9, 3.7928842544935246`*^9}},
 CellLabel->
  "In[124]:=",ExpressionUUID->"83099fcd-891b-4304-a0fe-eaa10eef4532"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.787084174276021*^9, 3.7870841859796944`*^9}},
 CellLabel->"In[2]:=",ExpressionUUID->"031054e3-28d7-4a79-91ac-77b517b08791"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSPropertyInterpreter`consumeProperty", "[", 
  RowBox[{"\"\<--custom1\>\"", ",", 
   RowBox[{"CSSTokenize", "[", "\"\<20px\>\"", "]"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.7875021658339224`*^9, 3.787502221367505*^9}},
 CellLabel->"In[11]:=",ExpressionUUID->"ec442119-ec3c-4700-9199-46464d5a4583"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSPropertyInterpreter`consumeProperty", "[", 
  RowBox[{"\"\<background\>\"", ",", 
   RowBox[{"CSSTokenize", "[", "\"\<red\>\"", "]"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.7879273246661587`*^9, 3.787927329866058*^9}},
 CellLabel->"In[12]:=",ExpressionUUID->"eb40b631-00af-4d8d-90eb-10b267141da6"],

Cell[BoxData[
 RowBox[{
  RowBox[{"cssData", "=", 
   RowBox[{"ImportString", "[", 
    RowBox[{
     RowBox[{
     "str", "=", 
      "\"\<:root {\n  --First-color: #488cff !important;\n  --second-color: \
#ffff8c;\n}\n\n#firstParagraph {\n  Background: red/*var(--First-color)*/;\n  \
color: var(--second-color);\n}\n\n#secondParagraph {\n  background-color: \
var(--second-color);\n  color: var(--first-color);\n}\n\n#container {\n  \
--first-color: #48ff32;\n  color:var(--second-color);\n}\n\n#thirdParagraph {\
\n  background-color: var(--first-color);\n  /*color: var(--second-color);*/\n\
}\>\""}], ",", "\"\<CSS\>\""}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.787504894195961*^9, 3.78750489963474*^9}, {
   3.787505740871685*^9, 3.7875057425887485`*^9}, 3.787505917806219*^9, 
   3.7875060805738053`*^9, {3.7875148526112137`*^9, 3.787514852712941*^9}, 
   3.7875793878001113`*^9, {3.7875803413912077`*^9, 3.787580359619462*^9}, 
   3.787580469793293*^9, {3.787663979010642*^9, 3.787663983266893*^9}, {
   3.7876640467588863`*^9, 3.7876640502259035`*^9}, {3.787664653461445*^9, 
   3.7876646593369017`*^9}, {3.787667837968115*^9, 3.7876678702499123`*^9}, {
   3.7876680372273307`*^9, 3.7876681070039444`*^9}, {3.787687233283442*^9, 
   3.787687234731306*^9}, {3.787921390907506*^9, 3.787921393921127*^9}, {
   3.787922530577799*^9, 3.7879225316494627`*^9}, {3.78792700455978*^9, 
   3.7879270096542535`*^9}, 3.7905229193815317`*^9},
 CellLabel->"In[27]:=",ExpressionUUID->"53f3c486-9e9c-43f1-9623-3290de63ae55"],

Cell[BoxData[
 RowBox[{"CSSCascade", "[", 
  RowBox[{
  "\"\<Background\>\"", ",", "Cell", ",", "cssData", ",", "All", ",", 
   RowBox[{"\"\<PropertyIsCaseSensitive\>\"", "\[Rule]", "True"}]}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.787687543161789*^9, 3.787687587158919*^9}, {
  3.7876909835825915`*^9, 3.78769098451288*^9}, {3.7879225919726334`*^9, 
  3.7879226141714296`*^9}},
 CellLabel->"In[28]:=",ExpressionUUID->"15ff1376-41d3-4740-92f6-754068f7ec9c"],

Cell[BoxData[
 RowBox[{
  RowBox[{"doc", "=", 
   RowBox[{"ImportString", "[", 
    RowBox[{
    "\"\<<html><p id=\\\"firstParagraph\\\">This paragraph should have a blue \
background and yellow text.</p>\n<p id=\\\"secondParagraph\\\">This paragraph \
should have a yellow background and blue text.</p>\n<div \
id=\\\"container\\\">\n  <p id=\\\"thirdParagraph\\\">This paragraph should \
have a green background and yellow text.</p>\n</div></html>\>\"", ",", 
     "\"\<XML\>\""}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.787514866207921*^9, 3.787514923614641*^9}, 
   3.7876639990815535`*^9},
 CellLabel->"In[29]:=",ExpressionUUID->"adeaf5bc-0b16-405e-9fe1-aa26cdf0cfe9"],

Cell[BoxData[
 RowBox[{
  RowBox[{"XMLObject", "[", "\"\<Document\>\"", "]"}], "[", 
  RowBox[{
   RowBox[{"{", "}"}], ",", "\[IndentingNewLine]", 
   RowBox[{"XMLElement", "[", 
    RowBox[{"\"\<html\>\"", ",", 
     RowBox[{"{", "}"}], ",", 
     RowBox[{"{", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"XMLElement", "[", 
        RowBox[{"\"\<p\>\"", ",", 
         RowBox[{"{", 
          RowBox[{"\"\<id\>\"", "\[Rule]", "\"\<firstParagraph\>\""}], "}"}], 
         ",", 
         RowBox[{
         "{", "\"\<This paragraph should have a blue background and yellow \
text.\>\"", "}"}]}], "]"}], ",", 
       RowBox[{"XMLElement", "[", 
        RowBox[{"\"\<p\>\"", ",", 
         RowBox[{"{", 
          RowBox[{"\"\<id\>\"", "\[Rule]", "\"\<secondParagraph\>\""}], "}"}],
          ",", 
         RowBox[{
         "{", "\"\<This paragraph should have a yellow background and blue \
text.\>\"", "}"}]}], "]"}], ",", "\[IndentingNewLine]", 
       RowBox[{"XMLElement", "[", 
        RowBox[{"\"\<div\>\"", ",", 
         RowBox[{"{", 
          RowBox[{"\"\<id\>\"", "\[Rule]", "\"\<container\>\""}], "}"}], ",", 
         
         RowBox[{"{", "\[IndentingNewLine]", 
          RowBox[{"XMLElement", "[", 
           RowBox[{"\"\<p\>\"", ",", 
            RowBox[{"{", 
             RowBox[{"\"\<id\>\"", "\[Rule]", "\"\<thirdParagraph\>\""}], 
             "}"}], ",", 
            RowBox[{
            "{", "\"\<This paragraph should have a green background and \
yellow text.\>\"", "}"}]}], "]"}], "}"}]}], "]"}]}], "}"}]}], "]"}], ",", 
   RowBox[{"{", "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.787580278394339*^9, 
  3.787580297555527*^9}},ExpressionUUID->"4b92dc19-7cdb-484b-a80e-\
0a064d955770"],

Cell[BoxData[
 RowBox[{"data2", "=", 
  RowBox[{"CSSTargets", "[", 
   RowBox[{"doc", ",", "cssData"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7875154140554857`*^9, 3.787515426973939*^9}, {
  3.7875156708554683`*^9, 3.7875156715017385`*^9}},
 CellLabel->"In[30]:=",ExpressionUUID->"9821499c-910e-4536-8081-8275dab6526d"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Interpreter", "[", "\"\<Color\>\"", "]"}], "[", 
  RowBox[{"{", 
   RowBox[{
   "\"\<#488cff\>\"", ",", "\"\<#ffff8c\>\"", ",", "\"\<#48ff32\>\""}], "}"}],
   "]"}]], "Input",
 CellChangeTimes->{{3.787515994431327*^9, 3.787516022287241*^9}},
 CellLabel->"In[7]:=",ExpressionUUID->"b7966c43-f4dc-4526-84ca-d5257dc05e71"],

Cell[BoxData[
 RowBox[{"CSSInheritance", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"2", ",", "3", ",", "3", ",", "3", ",", "1"}], "}"}], ",", "All", 
   ",", "data2", ",", 
   RowBox[{"\"\<PropertyIsCaseSensitive\>\"", "\[Rule]", "True"}]}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.787515674664253*^9, 3.7875157041981173`*^9}, {
  3.787516124439639*^9, 3.7875161277504063`*^9}, {3.7875771073740253`*^9, 
  3.7875771098773017`*^9}},
 CellLabel->"In[16]:=",ExpressionUUID->"894a3138-c69d-4dd8-9429-1b9d684d4ac9"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSData", "=", 
   RowBox[{"Normal", "@", "data2"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7875809082922645`*^9, 3.7875809133546968`*^9}},
 CellLabel->"In[9]:=",ExpressionUUID->"177472d2-c7ac-4f78-967a-33573e6a3030"],

Cell[BoxData[
 RowBox[{"valueTokens", "=", 
  RowBox[{
  "CSSTokenize", "[", 
   "\"\<thick var(--A, var(--B)) var(--B, var(--A)) var(--C)\>\"", 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.78758248537939*^9, 3.787582497722281*^9}, {
   3.7875832513640223`*^9, 3.7875832519804783`*^9}, {3.7875944478089886`*^9, 
   3.787594448388462*^9}, {3.7876594075124187`*^9, 3.787659414358611*^9}, 
   3.78766062904955*^9, {3.7876688508568773`*^9, 3.7876688509835386`*^9}, {
   3.787668881598773*^9, 3.7876688817283936`*^9}, {3.7876858120019665`*^9, 
   3.7876858279811516`*^9}, {3.7876861530857983`*^9, 3.787686155187639*^9}, {
   3.7876864309856625`*^9, 3.7876864364034133`*^9}},
 CellLabel->"In[35]:=",ExpressionUUID->"2e358094-b8b7-43b3-ae01-f0a57ec13137"],

Cell[BoxData[
 RowBox[{
  RowBox[{"replacements", "=", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"\"\<--A\>\"", "\[Rule]", "\"\<var(--B)\>\""}], ",", 
     RowBox[{"\"\<--B\>\"", "->", "\"\<value\>\""}], ",", 
     RowBox[{"\"\<--C\>\"", "\[Rule]", "\"\<var(--D)\>\""}], ",", 
     RowBox[{"\"\<--D\>\"", "\[Rule]", "\"\<var(--C)\>\""}]}], "}"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.787686085833128*^9, 3.7876860921910768`*^9}, {
  3.7876864069586315`*^9, 3.7876864618740745`*^9}},
 CellLabel->"In[36]:=",ExpressionUUID->"66268994-6eb2-4232-a33f-329ab1f972bb"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSCustomProperties1`Private`replaceVarFunctionWithTokens",
   "[", 
  RowBox[{"valueTokens", ",", "replacements"}], "]"}]], "Input",
 CellChangeTimes->{{3.787664710762998*^9, 3.7876647699052887`*^9}, {
   3.7876693158370914`*^9, 3.787669328966979*^9}, {3.7876694580166636`*^9, 
   3.787669465021698*^9}, {3.7876699439993873`*^9, 3.787669950407276*^9}, {
   3.7876857671879807`*^9, 3.787685789651204*^9}, 3.7876859260519986`*^9, {
   3.7876860882259464`*^9, 3.7876860899109974`*^9}, 3.7876861638337965`*^9},
 CellLabel->"In[38]:=",ExpressionUUID->"b5b6855a-3c57-465f-9684-5ce991d7d91f"],

Cell[CellGroupData[{

Cell["Summary Box for CSSToken", "Subsection",
 CellChangeTimes->{{3.787660547137368*^9, 
  3.78766055052139*^9}},ExpressionUUID->"a9fd5637-f831-4fac-9114-\
fe022efdacb3"],

Cell[BoxData[
 RowBox[{"cssIcon2", "=", 
  RowBox[{"First", "@", 
   RowBox[{"ImportString", "[", 
    RowBox[{
     RowBox[{"ExportString", "[", 
      RowBox[{
       RowBox[{"Style", "[", 
        RowBox[{"\"\<CSS\>\"", ",", "20", ",", "Bold", ",", 
         RowBox[{"FontColor", "\[Rule]", "Gray"}]}], "]"}], ",", 
       "\"\<PDF\>\""}], "]"}], ",", "\"\<PDF\>\"", ",", 
     RowBox[{"\"\<TextMode\>\"", "\[Rule]", "\"\<Outlines\>\""}]}], 
    "]"}]}]}]], "Input",
 CellChangeTimes->{{3.787335986373478*^9, 3.7873360923868136`*^9}, {
  3.7873361610528626`*^9, 3.787336189569175*^9}},
 CellLabel->"In[63]:=",ExpressionUUID->"e323ca9f-d5ce-4285-b5c4-6442a096dd3a"],

Cell[BoxData[
 RowBox[{"cssIcon2", "=", 
  RowBox[{"Graphics", "[", 
   RowBox[{
    RowBox[{"First", "[", "cssIcon2", "]"}], ",", 
    RowBox[{"ImageSize", "\[Rule]", "24"}], ",", 
    RowBox[{"ImagePadding", "\[Rule]", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"9", 
        RowBox[{"{", 
         RowBox[{"1", ",", "1"}], "}"}]}]}], "}"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7873362459550047`*^9, 3.7873363291045275`*^9}},
 CellLabel->"In[77]:=",ExpressionUUID->"b86d6137-641f-4890-863d-dd4d30406e97"],

Cell[BoxData[
 RowBox[{"Head", "[", "cssIcon2", "]"}]], "Input",
 CellChangeTimes->{{3.787336240307452*^9, 3.7873362427296352`*^9}},
 CellLabel->"In[68]:=",ExpressionUUID->"8fbbb8ab-bc8c-4737-95b8-b583b6d44684"],

Cell[BoxData[
 RowBox[{"ImageDimensions", "[", "cssIcon2", "]"}]], "Input",
 CellChangeTimes->{{3.7873361948305745`*^9, 3.78733620321236*^9}},
 CellLabel->"In[74]:=",ExpressionUUID->"afdfb253-183c-4c68-9191-ad95af477f7d"],

Cell[BoxData["token"], "Input",
 CellChangeTimes->{{3.7870855228763924`*^9, 3.787085523290286*^9}},
 CellLabel->"In[78]:=",ExpressionUUID->"cd6d1d7c-43cc-4f9c-869c-a5effb7ae5ba"],

Cell[BoxData[
 RowBox[{"Grid", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"50", "!"}], ",", 
      RowBox[{"Item", "[", 
       RowBox[{
        RowBox[{"100", "!"}], ",", 
        RowBox[{"ItemSize", "\[Rule]", 
         RowBox[{"20", "+", "Inherited"}]}]}], "]"}]}], "}"}], "}"}], ",", 
   RowBox[{"ItemSize", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"Scaled", "[", ".3", "]"}], ",", 
       RowBox[{"Scaled", "[", "0.1", "]"}]}], "}"}], "}"}]}], ",", 
   RowBox[{"Frame", "\[Rule]", "All"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.787339192502696*^9, 3.787339213623907*^9}, {
  3.7873393558331413`*^9, 3.787339443608159*^9}, {3.7873395082332306`*^9, 
  3.7873395434087696`*^9}},
 CellLabel->"In[96]:=",ExpressionUUID->"9f2385d8-eb01-47b5-a98c-90726f0807c8"],

Cell[BoxData[
 RowBox[{"Interpolation", "[", 
  RowBox[{"{", 
   RowBox[{"1", ",", "2", ",", "3"}], "}"}], "]"}]], "Input",
 CellChangeTimes->{{3.787335844139491*^9, 3.7873358486657095`*^9}},
 CellLabel->"In[44]:=",ExpressionUUID->"6feda34e-b413-4c13-bab9-40023117c8b1"],

Cell[BoxData[
 RowBox[{"RGBColor", "[", 
  RowBox[{
  "0.160784", ",", " ", "0.662745", ",", " ", "0.87451", ",", " ", "1."}], 
  "]"}]], "Input",
 CellLabel->"In[12]:=",ExpressionUUID->"d079a558-c692-48e4-8d4d-979b1aea39a5"],

Cell[BoxData[
 RowBox[{"ColorConvert", "[", 
  RowBox[{
   RowBox[{"RGBColor", "[", 
    RowBox[{
    "0.160784", ",", " ", "0.662745", ",", " ", "0.87451", ",", " ", "1."}], 
    "]"}], ",", "\"\<Grayscale\>\""}], "]"}]], "Input",
 CellChangeTimes->{{3.7873354601784544`*^9, 3.787335465313261*^9}, 
   3.7873354970502577`*^9},
 CellLabel->"In[13]:=",ExpressionUUID->"f714c95c-6dfe-4731-a6aa-d684393fcac2"],

Cell[BoxData[
 RowBox[{"cases", "=", 
  RowBox[{"DeleteCases", "[", 
   RowBox[{
    RowBox[{"Keys", "[", 
     RowBox[{"First", "[", "token", "]"}], "]"}], ",", 
    RowBox[{"\"\<Type\>\"", "|", "\"\<String\>\""}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7870853254587297`*^9, 3.787085326202773*^9}},
 CellLabel->"In[47]:=",ExpressionUUID->"9fcb69f4-6772-4789-b989-1c9778c5a8f9"],

Cell[BoxData["test"], "Input",
 CellChangeTimes->{{3.7870854661030235`*^9, 3.787085466338395*^9}},
 CellLabel->"In[40]:=",ExpressionUUID->"75f4d65a-cc1c-4e3c-b543-b805682fc409"],

Cell[BoxData[
 RowBox[{"CSSToken", "/:", 
  RowBox[{"MakeBoxes", "[", 
   RowBox[{
    RowBox[{"token", ":", 
     RowBox[{"CSSToken", "[", 
      RowBox[{"a_Association", "?", "AssociationQ"}], "]"}]}], ",", "fmt_"}], 
   "]"}], ":=", 
  RowBox[{"With", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"cases", "=", 
      RowBox[{"DeleteCases", "[", 
       RowBox[{
        RowBox[{"Keys", "[", 
         RowBox[{"First", "[", "token", "]"}], "]"}], ",", 
        RowBox[{
        "\"\<Type\>\"", "|", "\"\<String\>\"", "|", "\"\<RawString\>\"", "|", 
         "\"\<RawUnit\>\""}]}], "]"}]}], "}"}], ",", 
    RowBox[{"BoxForm`ArrangeSummaryBox", "[", 
     RowBox[{"CSSToken", ",", "token", ",", 
      RowBox[{"(*", "cssIcon", "*)"}], "cssIcon2", ",", 
      RowBox[{"{", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"BoxForm`SummaryItem", "[", 
         RowBox[{"{", 
          RowBox[{"\"\<Type: \>\"", ",", 
           RowBox[{"token", "[", "\"\<Type\>\"", "]"}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"BoxForm`SummaryItem", "[", 
         RowBox[{"{", 
          RowBox[{"\"\<String: \>\"", ",", 
           RowBox[{"token", "[", "\"\<String\>\"", "]"}]}], "}"}], "]"}]}], 
       "}"}], ",", "\[IndentingNewLine]", 
      RowBox[{"MapThread", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"BoxForm`SummaryItem", "[", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"#1", "<>", "\"\<: \>\""}], ",", "#2"}], "}"}], "]"}], 
         "&"}], ",", 
        RowBox[{"{", 
         RowBox[{"cases", ",", 
          RowBox[{"token", "/@", "cases"}]}], "}"}]}], "]"}], ",", "fmt"}], 
     "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7870853753401556`*^9, 3.787085457233923*^9}, {
   3.787085488842409*^9, 3.7870855154991217`*^9}, {3.787329177720976*^9, 
   3.7873291833648825`*^9}, {3.7873294192526083`*^9, 
   3.7873294211325836`*^9}, {3.787335786613782*^9, 3.787335787476716*^9}, {
   3.7873359415347133`*^9, 3.787335945010543*^9}, 3.787336217982863*^9},
 CellLabel->"In[66]:=",ExpressionUUID->"df8831a8-9ee3-414e-93ec-cb0e82e5efcb"],

Cell[BoxData[
 RowBox[{"MapThread", "[", 
  RowBox[{
   RowBox[{
    RowBox[{"BoxForm`SummaryItem", "[", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"#1", "<>", "\"\<: \>\""}], ",", "#2"}], "}"}], "]"}], "&"}], 
   ",", 
   RowBox[{"{", 
    RowBox[{"cases", ",", 
     RowBox[{"token", "/@", "cases"}]}], "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.78708516276453*^9, 3.7870852297063274`*^9}, {
  3.787085283597901*^9, 3.7870853414099245`*^9}},
 CellLabel->"In[49]:=",ExpressionUUID->"bbef448d-2d55-4e65-b931-d5334ebe82bc"],

Cell[BoxData[
 RowBox[{
  RowBox[{"With", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"token", "=", "token"}], "}"}], ",", 
    RowBox[{"BoxForm`ArrangeSummaryBox", "[", 
     RowBox[{"CSSToken", ",", "token", ",", "test", ",", 
      RowBox[{"{", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"BoxForm`SummaryItem", "[", 
         RowBox[{"{", 
          RowBox[{"\"\<Type: \>\"", ",", 
           RowBox[{"token", "[", "\"\<Type\>\"", "]"}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"BoxForm`SummaryItem", "[", 
         RowBox[{"{", 
          RowBox[{"\"\<String: \>\"", ",", 
           RowBox[{"token", "[", "\"\<String\>\"", "]"}]}], "}"}], "]"}]}], 
       "}"}], ",", "\[IndentingNewLine]", 
      RowBox[{"MapThread", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"BoxForm`SummaryItem", "[", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"#1", "<>", "\"\<: \>\""}], ",", "#2"}], "}"}], "]"}], 
         "&"}], ",", 
        RowBox[{"{", 
         RowBox[{"cases", ",", 
          RowBox[{"token", "/@", "cases"}]}], "}"}]}], "]"}], ",", 
      "StandardForm"}], "]"}]}], "]"}], "//", "RawBoxes"}]], "Input",
 CellChangeTimes->{{3.7870843745267*^9, 3.787084391579099*^9}, {
   3.7870845247438087`*^9, 3.787084537860769*^9}, {3.7870845848040133`*^9, 
   3.7870845906902456`*^9}, 3.787084628485962*^9, {3.7870847163231325`*^9, 
   3.787084780722082*^9}, {3.7870848536083746`*^9, 3.7870849101245565`*^9}, {
   3.787084972576173*^9, 3.787084975356737*^9}, {3.7870850178601046`*^9, 
   3.7870851606591606`*^9}, 3.7870853553067293`*^9},
 CellLabel->"In[50]:=",ExpressionUUID->"876b8cfe-8386-4af0-81cf-eac5f7cda074"]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell["Gradient testing", "Section",
 CellChangeTimes->{{3.7933672944366536`*^9, 
  3.7933672962263775`*^9}},ExpressionUUID->"fc09df73-705c-4349-bfcf-\
014579325601"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.793367315337307*^9, 3.7933673238755813`*^9}, {
  3.793371227675078*^9, 3.7933712279072685`*^9}, {3.79337128512506*^9, 
  3.7933712876504064`*^9}, {3.793715289105477*^9, 3.7937152893244333`*^9}, {
  3.7937157290175467`*^9, 3.7937157293835993`*^9}},
 CellLabel->"In[2]:=",ExpressionUUID->"5dda3c1a-5f76-487d-b59d-5edddff70487"],

Cell[CellGroupData[{

Cell["radial gradient image", "Subsection",
 CellChangeTimes->{{3.793572103618021*^9, 
  3.793572105625678*^9}},ExpressionUUID->"1c020b8b-ff8c-474c-9409-\
1eb12b910c14"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSPropertyInterpreter`parseSingleColor", "[", 
  RowBox[{"\"\<A\>\"", ",", 
   RowBox[{"First", "@", 
    RowBox[{"CSSTokenize", "[", "\"\<green\>\"", "]"}]}]}], "]"}]], "Input",
 CellChangeTimes->{{3.7935723711812086`*^9, 3.7935724271700273`*^9}, {
  3.7935725468668647`*^9, 3.793572548873499*^9}, {3.7939779122871284`*^9, 
  3.7939779173204117`*^9}},
 CellLabel->"In[56]:=",ExpressionUUID->"363ddbc1-3a64-4d8b-a891-7a78dd8c728e"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSImages3`Private`$Debug", " ", "=", " ", "True"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.793720894316207*^9, 3.7937209040984926`*^9}},
 CellLabel->"In[42]:=",ExpressionUUID->"fbb22dd7-a495-497a-b2ff-a48d0adaefd8"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSImages3`Private`$Debug", " ", "=", " ", "False"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.793975814601082*^9, 3.793975815674053*^9}},
 CellLabel->"In[40]:=",ExpressionUUID->"6cc54167-0c51-48a6-940f-4be7d245daee"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{"CSSTokenize", "[", "\"\<radial-gradient(2)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7937143049526415`*^9, 3.7937143425381093`*^9}, 
   3.7937167846191473`*^9, 3.793718615324675*^9, {3.793739107677105*^9, 
   3.7937391099993505`*^9}},
 CellLabel->
  "In[173]:=",ExpressionUUID->"45267589-e4fc-42f2-ad9a-b925f515b405"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{"CSSTokenize", "[", "\"\<radial-gradient(2px)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7937186208605785`*^9, 3.7937186209544983`*^9}, {
  3.793739113432914*^9, 3.7937391152193213`*^9}},
 CellLabel->"In[13]:=",ExpressionUUID->"27b2ca0c-de55-446b-b8ac-a17c79a7d1f9"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{"CSSTokenize", "[", "\"\<radial-gradient(2px,a)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7937186502787533`*^9, 3.7937186679642024`*^9}, 
   3.7937193457895594`*^9, 3.793719506931513*^9, {3.793739119406725*^9, 
   3.7937391211788316`*^9}},
 CellLabel->"In[14]:=",ExpressionUUID->"5c8338b3-b202-429a-bcdb-712c4b2a7d57"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", "\"\<radial-gradient(2px,a,white,blue)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.793721041189887*^9, 3.793721042266885*^9}, {
  3.7937391256619277`*^9, 3.7937391276018066`*^9}},
 CellLabel->"In[15]:=",ExpressionUUID->"fe2062e7-715a-42d0-8f34-96ff5d32b40b"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{"CSSTokenize", "[", "\"\<radial-gradient(2px 10px)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7937199034594097`*^9, 3.793719928483179*^9}, {
  3.79373913323489*^9, 3.7937391356656275`*^9}},
 CellLabel->"In[16]:=",ExpressionUUID->"212b655d-f311-47e1-af1b-0e5953b43f44"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", "\"\<radial-gradient(2px 10px circle)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7937201567056637`*^9, 3.7937201664971056`*^9}, {
   3.793720653504488*^9, 3.793720674297659*^9}, 3.793720824258485*^9, {
   3.7937391428413553`*^9, 3.7937391456556826`*^9}},
 CellLabel->"In[17]:=",ExpressionUUID->"fe9884cd-8d43-48e6-bb94-00512b7d498b"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{"CSSTokenize", "[", "\"\<radial-gradient(red)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7937272544396505`*^9, 3.7937272551449947`*^9}, {
  3.7937391491023293`*^9, 3.7937391526472983`*^9}},
 CellLabel->"In[18]:=",ExpressionUUID->"40d8ee4a-9dad-4b17-b6b4-5176e8c54710"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", "\"\<radial-gradient(red 20px, blue)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.793976390194168*^9, 3.79397641103758*^9}},
 CellLabel->
  "In[174]:=",ExpressionUUID->"ea0c832b-84b6-478e-b9b9-54aeac21f61f"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTools`CSSTokenizer`CSSTokenize", "[", 
     "\"\<radial-gradient(at left 10px top 10%, yellow, green)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.7939780903375406`*^9, 3.7939780928705583`*^9}, {
   3.7990840773463497`*^9, 3.7990840826312113`*^9}, {3.799084335754616*^9, 
   3.7990843373513403`*^9}, {3.7990846985941677`*^9, 3.799084700543951*^9}, 
   3.79908491092058*^9, {3.7990849715364485`*^9, 3.799084973254856*^9}, 
   3.799085005432764*^9, {3.7990850577204237`*^9, 3.7990850981821747`*^9}, {
   3.799085191648591*^9, 3.7990851927336893`*^9}, {3.7990854132477803`*^9, 
   3.7990854140456467`*^9}, {3.7990855071835337`*^9, 3.7990855073730297`*^9}, 
   3.799086692031249*^9},ExpressionUUID->"c37edf27-6009-4566-ae30-\
a6bdd5089160"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSImages3`Private`$Debug", "=", "True"}], ";"}]], "Input",
 CellChangeTimes->{{3.799081160566473*^9, 3.799081166892576*^9}},
 CellLabel->
  "In[191]:=",ExpressionUUID->"d9389316-4ed3-4f97-9748-4da781d2a238"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSImages3`Private`CSSGradientConvertRadialPosition", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"Left", ",", "20"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"Top", ",", 
       RowBox[{"Scaled", "[", 
        FractionBox["1", "10"], "]"}]}], "}"}]}], "}"}], ",", 
   "\"\<Ellipse\>\"", ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"Scaled", "[", 
      FractionBox["1", "5"], "]"}], ",", 
     RowBox[{"Scaled", "[", 
      FractionBox["1", "10"], "]"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"200", ",", "100"}], "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.7955478825074577`*^9, 3.7955478836115046`*^9}, {
  3.795891870886217*^9, 3.795891871269231*^9}, {3.795892175191036*^9, 
  3.7958921754617414`*^9}},
 CellLabel->
  "In[111]:=",ExpressionUUID->"4df9c1e7-e254-42c6-ac1a-e4cd406b11c9"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "@", 
  RowBox[{"First", "@", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<radial-gradient(ellipse at 100%, #333, #333 50%, #eee 75%, #333 75%)\
\>\"", "]"}]}]}]], "Input",
 CellChangeTimes->{{3.7958918764797397`*^9, 3.795891901637064*^9}, {
  3.795952232542547*^9, 3.7959522332838707`*^9}},
 CellLabel->"In[14]:=",ExpressionUUID->"9ea54861-465d-46b0-a0d3-cda122375c01"],

Cell[BoxData[
 RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"Column", "[", 
    RowBox[{"{", "\[IndentingNewLine]", 
     RowBox[{"u", ",", "\[IndentingNewLine]", 
      RowBox[{"Pane", "@", 
       RowBox[{"RadialGradientImage", "[", 
        RowBox[{
         RowBox[{
         "CSSTools`CSSImages3`Private`CSSGradientConvertRadialPosition", "[", 
          RowBox[{"u", ",", "type", ",", "end", ",", 
           RowBox[{"{", 
            RowBox[{"400", ",", "300"}], "}"}]}], "]"}], ",", 
         RowBox[{"{", 
          RowBox[{"400", ",", "300"}], "}"}], ",", 
         RowBox[{"ColorFunction", "\[Rule]", 
          RowBox[{"(", 
           RowBox[{
            RowBox[{"Blend", "[", 
             RowBox[{
              RowBox[{"{", 
               RowBox[{
                RowBox[{"{", 
                 RowBox[{"0", ",", "Red"}], "}"}], ",", 
                RowBox[{"{", 
                 RowBox[{"1", ",", "Blue"}], "}"}], ",", 
                RowBox[{"{", 
                 RowBox[{"1", ",", "Green"}], "}"}]}], "}"}], ",", "#"}], 
             "]"}], "&"}], ")"}]}], ",", 
         RowBox[{"If", "[", 
          RowBox[{
           RowBox[{"type", "===", "\"\<Circle\>\""}], ",", 
           RowBox[{"Unevaluated", "[", 
            RowBox[{"Sequence", "[", "]"}], "]"}], ",", 
           RowBox[{"DataRange", "\[Rule]", 
            RowBox[{
            "CSSTools`CSSImages3`Private`CSSGradientConvertRadialDataRange", 
             "[", 
             RowBox[{"u", ",", "end", ",", 
              RowBox[{"{", 
               RowBox[{"400", ",", "300"}], "}"}]}], "]"}]}]}], "]"}]}], 
        "]"}]}]}], "}"}], "]"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"u", ",", 
       RowBox[{"{", 
        RowBox[{"150", ",", "150"}], "}"}]}], "}"}], ",", "Locator"}], "}"}], 
   ",", "\[IndentingNewLine]", 
   RowBox[{"{", 
    RowBox[{"type", ",", 
     RowBox[{"{", 
      RowBox[{"\"\<Circle\>\"", ",", "\"\<Ellipse\>\""}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"end", ",", 
     RowBox[{"{", 
      RowBox[{
      "\"\<ClosestSide\>\"", ",", "\"\<ClosestCorner\>\"", ",", 
       "\"\<FarthestSide\>\"", ",", "\"\<FarthestCorner\>\""}], "}"}]}], 
    "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.7959522809893465`*^9, 
  3.7959522822679615`*^9}},ExpressionUUID->"914690d9-b71d-4d90-9f34-\
acef18436c4c"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", 
     "\"\<radial-gradient(ellipse 20% 10% at left 20px top 10%, yellow 0%, \
green 100%)\>\"", "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7940580998715353`*^9, 3.7940581092194986`*^9}, {
  3.7940633792880707`*^9, 3.7940633952511854`*^9}, {3.7940639119162126`*^9, 
  3.7940639248540215`*^9}, {3.794064732503089*^9, 3.7940647562294292`*^9}, {
  3.7940679586444407`*^9, 3.7940679594662433`*^9}},
 CellLabel->"In[17]:=",ExpressionUUID->"611f69e9-7f31-40da-97c9-8f2f403e0d07"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", 
     "\"\<radial-gradient(ellipse 20px 30px at left bottom, red, yellow 50px, \
green)\>\"", "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{
  3.794146399277047*^9, {3.795805588887086*^9, 3.7958056261484323`*^9}, {
   3.795805658117937*^9, 3.79580565886893*^9}},
 CellLabel->"In[9]:=",ExpressionUUID->"afacde59-c7f5-4ad4-917c-10bd7e0f93fb"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", 
     "\"\<radial-gradient(ellipse at center, yellow 0%, green 100%)\>\"", 
     "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.793978101603126*^9, 3.793978112392319*^9}},
 CellLabel->"In[13]:=",ExpressionUUID->"ea4df72e-2744-42e7-82bc-f63d85dba234"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", 
     "\"\<radial-gradient(farthest-corner at 50% 50%, yellow, green)\>\"", 
     "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7939823481165156`*^9, 3.793982377019556*^9}},
 CellLabel->"In[14]:=",ExpressionUUID->"71f1154a-ff6d-4953-9b4d-6c8c1d9e3650"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseRadialGradientFunction", "[", 
   RowBox[{"First", "@", 
    RowBox[{
    "CSSTokenize", "[", 
     "\"\<radial-gradient(10% at top right, yellow, green)\>\"", "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.793984941049708*^9, 3.793984943274742*^9}, {
  3.7939877450744104`*^9, 3.7939877466197166`*^9}},
 CellLabel->"In[15]:=",ExpressionUUID->"2bfcd454-27fb-4821-9b4d-2267f6af4c96"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSImages3`Private`CSSGradientMakeBlendFromColorStops", 
  "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"200", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"None", ",", 
       InterpretationBox[
        ButtonBox[
         TooltipBox[
          GraphicsBox[{
            {GrayLevel[0], RectangleBox[{0, 0}]}, 
            {GrayLevel[0], RectangleBox[{1, -1}]}, 
            {RGBColor[1, 0, 0], RectangleBox[{0, -1}, {2, 1}]}},
           AspectRatio->1,
           DefaultBaseStyle->"ColorSwatchGraphics",
           Frame->True,
           FrameStyle->RGBColor[0.6666666666666666, 0., 0.],
           FrameTicks->None,
           
           ImageSize->
            Dynamic[{
             Automatic, 
              1.35 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
               Magnification])}],
           PlotRangePadding->None],
          StyleBox[
           RowBox[{"RGBColor", "[", 
             RowBox[{"1", ",", "0", ",", "0"}], "]"}], NumberMarks -> False]],
         Appearance->None,
         BaseStyle->{},
         BaselinePosition->Baseline,
         ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
           If[
            Not[
             AbsoluteCurrentValue["Deployed"]], 
            SelectionMove[Typeset`box$, All, Expression]; 
            FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
            FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[1, 0, 0]; 
            FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
            MathLink`CallFrontEnd[
              FrontEnd`AttachCell[Typeset`box$, 
               FrontEndResource["RGBColorValueSelector"], {
               0, {Left, Bottom}}, {Left, Top}, 
               "ClosingActions" -> {
                "SelectionDeparture", "ParentChanged", "EvaluatorQuit"}]]]],
         DefaultBaseStyle->{},
         Evaluator->Automatic,
         Method->"Preemptive"],
        RGBColor[1, 0, 0],
        Editable->False,
        Selectable->False]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"50", ",", 
       InterpretationBox[
        ButtonBox[
         TooltipBox[
          GraphicsBox[{
            {GrayLevel[0], RectangleBox[{0, 0}]}, 
            {GrayLevel[0], RectangleBox[{1, -1}]}, 
            {RGBColor[1, 1, 0], RectangleBox[{0, -1}, {2, 1}]}},
           AspectRatio->1,
           DefaultBaseStyle->"ColorSwatchGraphics",
           Frame->True,
           FrameStyle->RGBColor[0.6666666666666666, 0.6666666666666666, 0.],
           FrameTicks->None,
           
           ImageSize->
            Dynamic[{
             Automatic, 
              1.35 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
               Magnification])}],
           PlotRangePadding->None],
          StyleBox[
           RowBox[{"RGBColor", "[", 
             RowBox[{"1", ",", "1", ",", "0"}], "]"}], NumberMarks -> False]],
         Appearance->None,
         BaseStyle->{},
         BaselinePosition->Baseline,
         ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
           If[
            Not[
             AbsoluteCurrentValue["Deployed"]], 
            SelectionMove[Typeset`box$, All, Expression]; 
            FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
            FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[1, 1, 0]; 
            FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
            MathLink`CallFrontEnd[
              FrontEnd`AttachCell[Typeset`box$, 
               FrontEndResource["RGBColorValueSelector"], {
               0, {Left, Bottom}}, {Left, Top}, 
               "ClosingActions" -> {
                "SelectionDeparture", "ParentChanged", "EvaluatorQuit"}]]]],
         DefaultBaseStyle->{},
         Evaluator->Automatic,
         Method->"Preemptive"],
        RGBColor[1, 1, 0],
        Editable->False,
        Selectable->False]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"None", ",", 
       InterpretationBox[
        ButtonBox[
         TooltipBox[
          GraphicsBox[{
            {GrayLevel[0], RectangleBox[{0, 0}]}, 
            {GrayLevel[0], RectangleBox[{1, -1}]}, 
            {RGBColor[0, 
              Rational[128, 255], 0], RectangleBox[{0, -1}, {2, 1}]}},
           AspectRatio->1,
           DefaultBaseStyle->"ColorSwatchGraphics",
           Frame->True,
           FrameStyle->RGBColor[0., 0.33464052287581697`, 0.],
           FrameTicks->None,
           
           ImageSize->
            Dynamic[{
             Automatic, 
              1.35 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
               Magnification])}],
           PlotRangePadding->None],
          StyleBox[
           RowBox[{"RGBColor", "[", 
             RowBox[{"0", ",", 
               FractionBox["128", "255"], ",", "0"}], "]"}], NumberMarks -> 
           False]],
         Appearance->None,
         BaseStyle->{},
         BaselinePosition->Baseline,
         ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
           If[
            Not[
             AbsoluteCurrentValue["Deployed"]], 
            SelectionMove[Typeset`box$, All, Expression]; 
            FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
            FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[0, 
               Rational[128, 255], 0]; 
            FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
            MathLink`CallFrontEnd[
              FrontEnd`AttachCell[Typeset`box$, 
               FrontEndResource["RGBColorValueSelector"], {
               0, {Left, Bottom}}, {Left, Top}, 
               "ClosingActions" -> {
                "SelectionDeparture", "ParentChanged", "EvaluatorQuit"}]]]],
         DefaultBaseStyle->{},
         Evaluator->Automatic,
         Method->"Preemptive"],
        RGBColor[0, 
         Rational[128, 255], 0],
        Editable->False,
        Selectable->False]}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"200", ",", "100"}], "}"}]}], "]"}]], "Input",
 CellChangeTimes->{3.7941472079654264`*^9, 
  3.795892756554183*^9},ExpressionUUID->"b32dd09c-2442-49ef-a0fc-\
20530fbe6ce6"]
}, Open  ]],

Cell[CellGroupData[{

Cell["linear gradient image", "Subsection",
 CellChangeTimes->{{3.793551946909946*^9, 3.7935519471353283`*^9}, {
  3.7935720370272217`*^9, 
  3.7935720426501846`*^9}},ExpressionUUID->"82fd3c59-5f7b-461b-8b8b-\
9763f10fc220"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<CSSTools`CSSTokenizer`\>\"", "]"}]], "Input",
 CellChangeTimes->{{3.793367315337307*^9, 3.7933673238755813`*^9}, {
  3.793371227675078*^9, 3.7933712279072685`*^9}, {3.79337128512506*^9, 
  3.7933712876504064`*^9}, {3.793715289105477*^9, 3.7937152893244333`*^9}, {
  3.7937157290175467`*^9, 3.7937157293835993`*^9}},
 CellLabel->"In[2]:=",ExpressionUUID->"f6145760-afb6-4fad-8fed-5a6712ab75a7"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSImages3`Private`$Debug", " ", "=", " ", "True"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7937379209926257`*^9, 3.7937379215119314`*^9}},
 CellLabel->"In[26]:=",ExpressionUUID->"a746e6bc-921e-4ff2-972e-a9c7d67318ac"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CSSTools`CSSImages3`Private`$Debug", " ", "=", " ", "False"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.793720894316207*^9, 3.7937209040984926`*^9}, {
  3.793737915651466*^9, 3.793737916162094*^9}},
 CellLabel->"In[22]:=",ExpressionUUID->"3e68d625-5d8f-4c60-937d-71e7993709a3"],

Cell[BoxData[
 RowBox[{"CSSGradientMakeBlendFromColorStops", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"Left", ",", "Bottom"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"Right", ",", "Top"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"5", ",", 
       InterpretationBox[
        ButtonBox[
         TooltipBox[
          GraphicsBox[{
            {GrayLevel[0], RectangleBox[{0, 0}]}, 
            {GrayLevel[0], RectangleBox[{1, -1}]}, 
            {RGBColor[1, 0, 0], RectangleBox[{0, -1}, {2, 1}]}},
           AspectRatio->1,
           DefaultBaseStyle->"ColorSwatchGraphics",
           Frame->True,
           FrameStyle->RGBColor[0.6666666666666666, 0., 0.],
           FrameTicks->None,
           
           ImageSize->
            Dynamic[{
             Automatic, 1.35 CurrentValue["FontCapHeight"]/
              AbsoluteCurrentValue[Magnification]}],
           PlotRangePadding->None],
          StyleBox[
           RowBox[{"RGBColor", "[", 
             RowBox[{"1", ",", "0", ",", "0"}], "]"}], NumberMarks -> False]],
         Appearance->None,
         BaseStyle->{},
         BaselinePosition->Baseline,
         ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
           If[
            Not[
             AbsoluteCurrentValue["Deployed"]], 
            SelectionMove[Typeset`box$, All, Expression]; 
            FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
            FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[1, 0, 0]; 
            FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
            MathLink`CallFrontEnd[
              FrontEnd`AttachCell[Typeset`box$, 
               FrontEndResource["RGBColorValueSelector"], {
               0, {Left, Bottom}}, {Left, Top}, 
               "ClosingActions" -> {
                "SelectionDeparture", "ParentChanged", "EvaluatorQuit"}]]]],
         DefaultBaseStyle->{},
         Evaluator->Automatic,
         Method->"Preemptive"],
        RGBColor[1, 0, 0],
        Editable->False,
        Selectable->False]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"20", ",", 
       InterpretationBox[
        ButtonBox[
         TooltipBox[
          GraphicsBox[{
            {GrayLevel[0], RectangleBox[{0, 0}]}, 
            {GrayLevel[0], RectangleBox[{1, -1}]}, 
            {RGBColor[1, 1, 1], RectangleBox[{0, -1}, {2, 1}]}},
           AspectRatio->1,
           DefaultBaseStyle->"ColorSwatchGraphics",
           Frame->True,
           
           FrameStyle->RGBColor[
            0.6666666666666666, 0.6666666666666666, 0.6666666666666666],
           FrameTicks->None,
           
           ImageSize->
            Dynamic[{
             Automatic, 1.35 CurrentValue["FontCapHeight"]/
              AbsoluteCurrentValue[Magnification]}],
           PlotRangePadding->None],
          StyleBox[
           RowBox[{"RGBColor", "[", 
             RowBox[{"1", ",", "1", ",", "1"}], "]"}], NumberMarks -> False]],
         Appearance->None,
         BaseStyle->{},
         BaselinePosition->Baseline,
         ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
           If[
            Not[
             AbsoluteCurrentValue["Deployed"]], 
            SelectionMove[Typeset`box$, All, Expression]; 
            FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
            FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[1, 1, 1]; 
            FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
            MathLink`CallFrontEnd[
              FrontEnd`AttachCell[Typeset`box$, 
               FrontEndResource["RGBColorValueSelector"], {
               0, {Left, Bottom}}, {Left, Top}, 
               "ClosingActions" -> {
                "SelectionDeparture", "ParentChanged", "EvaluatorQuit"}]]]],
         DefaultBaseStyle->{},
         Evaluator->Automatic,
         Method->"Preemptive"],
        RGBColor[1, 1, 1],
        Editable->False,
        Selectable->False]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"30", ",", 
       InterpretationBox[
        ButtonBox[
         TooltipBox[
          GraphicsBox[{
            {GrayLevel[0], RectangleBox[{0, 0}]}, 
            {GrayLevel[0], RectangleBox[{1, -1}]}, 
            {RGBColor[0, 0, 1], RectangleBox[{0, -1}, {2, 1}]}},
           AspectRatio->1,
           DefaultBaseStyle->"ColorSwatchGraphics",
           Frame->True,
           FrameStyle->RGBColor[0., 0., 0.6666666666666666],
           FrameTicks->None,
           
           ImageSize->
            Dynamic[{
             Automatic, 1.35 CurrentValue["FontCapHeight"]/
              AbsoluteCurrentValue[Magnification]}],
           PlotRangePadding->None],
          StyleBox[
           RowBox[{"RGBColor", "[", 
             RowBox[{"0", ",", "0", ",", "1"}], "]"}], NumberMarks -> False]],
         Appearance->None,
         BaseStyle->{},
         BaselinePosition->Baseline,
         ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
           If[
            Not[
             AbsoluteCurrentValue["Deployed"]], 
            SelectionMove[Typeset`box$, All, Expression]; 
            FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
            FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[0, 0, 1]; 
            FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
            MathLink`CallFrontEnd[
              FrontEnd`AttachCell[Typeset`box$, 
               FrontEndResource["RGBColorValueSelector"], {
               0, {Left, Bottom}}, {Left, Top}, 
               "ClosingActions" -> {
                "SelectionDeparture", "ParentChanged", "EvaluatorQuit"}]]]],
         DefaultBaseStyle->{},
         Evaluator->Automatic,
         Method->"Preemptive"],
        RGBColor[0, 0, 1],
        Editable->False,
        Selectable->False]}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"200", ",", "100"}], "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.794146622973688*^9, 3.7941466250494413`*^9}},
 CellLabel->"In[95]:=",ExpressionUUID->"3ce350fd-1d9b-426b-bbba-bdd1c57cb144"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
   RowBox[{"\"\<test\>\"", ",", " ", 
    RowBox[{"First", " ", "@", " ", 
     RowBox[{
     "CSSTokenize", "[", 
      "\"\<linear-gradient(to top right, red 5px, white 20%, blue 30px)\>\"", 
      "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7949179554908843`*^9, 3.7949179642844453`*^9}},
 CellLabel->"In[18]:=",ExpressionUUID->"f079d772-51e7-493a-981a-f569578712da"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
   RowBox[{"\"\<test\>\"", ",", " ", 
    RowBox[{"First", " ", "@", " ", 
     RowBox[{
     "CSSTokenize", "[", 
      "\"\<linear-gradient(to left bottom, yellow 10px, green 20px, red 30px)\
\>\"", "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7959563391417108`*^9, 3.795956342937868*^9}, {
  3.795957866818124*^9, 3.795957868510823*^9}, {3.7959579822227535`*^9, 
  3.795957984088416*^9}, {3.7959589028346395`*^9, 3.795958906753889*^9}, {
  3.795959181450124*^9, 3.7959591820451674`*^9}, {3.7959687962651978`*^9, 
  3.7959687968641148`*^9}, {3.795972439760401*^9, 3.7959724419826183`*^9}, {
  3.7959762011119595`*^9, 3.795976203286148*^9}},
 CellLabel->
  "In[314]:=",ExpressionUUID->"31090072-d34c-43f0-a5fa-87f104425067"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{
  "CSSTools`CSSImages3`Private`parseRepeatingLinearGradientFunction", "[", 
   RowBox[{"\"\<test\>\"", ",", " ", 
    RowBox[{"First", " ", "@", " ", 
     RowBox[{
     "CSSTokenize", "[", 
      "\"\<repeating-linear-gradient(to left bottom, yellow 10px, green 20px, \
black 20px, red 30px)\>\"", "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7959538314277754`*^9, 3.7959538559169073`*^9}, 
   3.7959542639883537`*^9, {3.7959552622954445`*^9, 3.7959552625453815`*^9}, 
   3.795957893394703*^9, {3.7959579555801835`*^9, 3.7959579581527643`*^9}, {
   3.7959687907373924`*^9, 3.79596879133589*^9}, {3.79596896315292*^9, 
   3.7959689881359854`*^9}, {3.7959690253289824`*^9, 
   3.7959690467434444`*^9}, {3.7959703073530493`*^9, 
   3.7959703374073853`*^9}, {3.795974022912492*^9, 3.795974028735643*^9}, {
   3.7959758294958477`*^9, 3.795975888861801*^9}, {3.7959760152715254`*^9, 
   3.795976053446726*^9}},
 CellLabel->
  "In[306]:=",ExpressionUUID->"1bc36380-66ed-4ef6-8d8d-69e103c499a1"],

Cell[BoxData[
 RowBox[{"res", "[", 
  RowBox[{"{", 
   RowBox[{"200", ",", "100"}], "}"}], "]"}]], "Input",
 CellChangeTimes->{{3.795953369765142*^9, 3.7959533721596327`*^9}, {
  3.7959538767319217`*^9, 3.795953887245122*^9}, {3.7959606002269163`*^9, 
  3.7959606161286736`*^9}, {3.795975543456522*^9, 3.795975558384575*^9}, {
  3.795976069417018*^9, 3.79597612151773*^9}, {3.7959762181201334`*^9, 
  3.7959762216227694`*^9}},
 CellLabel->
  "In[317]:=",ExpressionUUID->"36109fbb-001e-49d1-b6c3-dba63a281197"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSImages3`Private`CSSGradientConvertAngleToPositions", 
  "[", 
  RowBox[{
   RowBox[{"26.56505117707799`", "Degree"}], ",", 
   RowBox[{"{", 
    RowBox[{"200", ",", "100"}], "}"}]}], "]"}]], "Input",ExpressionUUID->\
"fd3e7577-b6c9-4528-81dd-c4e76e7b6e75"],

Cell[BoxData[
 RowBox[{"LinearGradientImage", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"60.`", ",", 
       RowBox[{"-", "30.`"}]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"140.`", ",", "130.`"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"200", ",", "100"}], "}"}], ",", 
   RowBox[{"ColorFunction", "\[Rule]", 
    RowBox[{"(", 
     RowBox[{
      RowBox[{"Blend", "[", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{
          RowBox[{"{", 
           RowBox[{"0", ",", "Yellow"}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"0.5", ",", 
            InterpretationBox[
             ButtonBox[
              TooltipBox[
               GraphicsBox[{
                 {GrayLevel[0], RectangleBox[{0, 0}]}, 
                 {GrayLevel[0], RectangleBox[{1, -1}]}, 
                 {RGBColor[0, 
                   Rational[128, 255], 0], RectangleBox[{0, -1}, {2, 1}]}},
                AspectRatio->1,
                DefaultBaseStyle->"ColorSwatchGraphics",
                Frame->True,
                FrameStyle->RGBColor[0., 0.33464052287581697`, 0.],
                FrameTicks->None,
                
                ImageSize->
                 Dynamic[{
                  Automatic, 1.35 CurrentValue["FontCapHeight"]/
                   AbsoluteCurrentValue[Magnification]}],
                PlotRangePadding->None],
               StyleBox[
                RowBox[{"RGBColor", "[", 
                  RowBox[{"0", ",", 
                    FractionBox["128", "255"], ",", "0"}], "]"}], NumberMarks -> 
                False]],
              Appearance->None,
              BaseStyle->{},
              BaselinePosition->Baseline,
              ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
                If[
                 Not[
                  AbsoluteCurrentValue["Deployed"]], 
                 SelectionMove[Typeset`box$, All, Expression]; 
                 FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
                 FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[0, 
                    Rational[128, 255], 0]; 
                 FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
                 MathLink`CallFrontEnd[
                   FrontEnd`AttachCell[Typeset`box$, 
                    FrontEndResource["RGBColorValueSelector"], {
                    0, {Left, Bottom}}, {Left, Top}, 
                    "ClosingActions" -> {
                    "SelectionDeparture", "ParentChanged", 
                    "EvaluatorQuit"}]]]],
              DefaultBaseStyle->{},
              Evaluator->Automatic,
              Method->"Preemptive"],
             RGBColor[0, 
              Rational[128, 255], 0],
             Editable->False,
             Selectable->False]}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"0.5", ",", "Black"}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"1", ",", 
            InterpretationBox[
             ButtonBox[
              TooltipBox[
               GraphicsBox[{
                 {GrayLevel[0], RectangleBox[{0, 0}]}, 
                 {GrayLevel[0], RectangleBox[{1, -1}]}, 
                 {RGBColor[1, 0, 0], RectangleBox[{0, -1}, {2, 1}]}},
                AspectRatio->1,
                DefaultBaseStyle->"ColorSwatchGraphics",
                Frame->True,
                FrameStyle->RGBColor[0.6666666666666666, 0., 0.],
                FrameTicks->None,
                
                ImageSize->
                 Dynamic[{
                  Automatic, 1.35 CurrentValue["FontCapHeight"]/
                   AbsoluteCurrentValue[Magnification]}],
                PlotRangePadding->None],
               StyleBox[
                RowBox[{"RGBColor", "[", 
                  RowBox[{"1", ",", "0", ",", "0"}], "]"}], NumberMarks -> 
                False]],
              Appearance->None,
              BaseStyle->{},
              BaselinePosition->Baseline,
              ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
                If[
                 Not[
                  AbsoluteCurrentValue["Deployed"]], 
                 SelectionMove[Typeset`box$, All, Expression]; 
                 FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
                 FrontEnd`Private`$ColorSelectorInitialColor = 
                  RGBColor[1, 0, 0]; 
                 FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
                 MathLink`CallFrontEnd[
                   FrontEnd`AttachCell[Typeset`box$, 
                    FrontEndResource["RGBColorValueSelector"], {
                    0, {Left, Bottom}}, {Left, Top}, 
                    "ClosingActions" -> {
                    "SelectionDeparture", "ParentChanged", 
                    "EvaluatorQuit"}]]]],
              DefaultBaseStyle->{},
              Evaluator->Automatic,
              Method->"Preemptive"],
             RGBColor[1, 0, 0],
             Editable->False,
             Selectable->False]}], "}"}]}], "}"}], ",", "#1"}], "]"}], "&"}], 
     ")"}]}]}], "]"}]], "Input",
 CellChangeTimes->{3.795974180640668*^9, 3.795974377370963*^9},
 CellLabel->
  "In[256]:=",ExpressionUUID->"b56a6e95-0e5d-4ddb-a3d0-faa6376e4008"],

Cell[BoxData[
 RowBox[{"LinearGradientImage", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"Right", ",", "Top"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"Left", ",", "Bottom"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"200", ",", "100"}], "}"}], ",", 
   RowBox[{"ColorFunction", "\[Rule]", 
    RowBox[{"(", 
     RowBox[{
      RowBox[{"Blend", "[", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{
          RowBox[{"{", 
           RowBox[{"0", ",", "Yellow"}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"0.5", ",", 
            InterpretationBox[
             ButtonBox[
              TooltipBox[
               GraphicsBox[{
                 {GrayLevel[0], RectangleBox[{0, 0}]}, 
                 {GrayLevel[0], RectangleBox[{1, -1}]}, 
                 {RGBColor[0, 
                   Rational[128, 255], 0], RectangleBox[{0, -1}, {2, 1}]}},
                AspectRatio->1,
                DefaultBaseStyle->"ColorSwatchGraphics",
                Frame->True,
                FrameStyle->RGBColor[0., 0.33464052287581697`, 0.],
                FrameTicks->None,
                
                ImageSize->
                 Dynamic[{
                  Automatic, 1.35 CurrentValue["FontCapHeight"]/
                   AbsoluteCurrentValue[Magnification]}],
                PlotRangePadding->None],
               StyleBox[
                RowBox[{"RGBColor", "[", 
                  RowBox[{"0", ",", 
                    FractionBox["128", "255"], ",", "0"}], "]"}], NumberMarks -> 
                False]],
              Appearance->None,
              BaseStyle->{},
              BaselinePosition->Baseline,
              ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
                If[
                 Not[
                  AbsoluteCurrentValue["Deployed"]], 
                 SelectionMove[Typeset`box$, All, Expression]; 
                 FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
                 FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[0, 
                    Rational[128, 255], 0]; 
                 FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
                 MathLink`CallFrontEnd[
                   FrontEnd`AttachCell[Typeset`box$, 
                    FrontEndResource["RGBColorValueSelector"], {
                    0, {Left, Bottom}}, {Left, Top}, 
                    "ClosingActions" -> {
                    "SelectionDeparture", "ParentChanged", 
                    "EvaluatorQuit"}]]]],
              DefaultBaseStyle->{},
              Evaluator->Automatic,
              Method->"Preemptive"],
             RGBColor[0, 
              Rational[128, 255], 0],
             Editable->False,
             Selectable->False]}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"0.5", ",", "Black"}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"1", ",", 
            InterpretationBox[
             ButtonBox[
              TooltipBox[
               GraphicsBox[{
                 {GrayLevel[0], RectangleBox[{0, 0}]}, 
                 {GrayLevel[0], RectangleBox[{1, -1}]}, 
                 {RGBColor[1, 0, 0], RectangleBox[{0, -1}, {2, 1}]}},
                AspectRatio->1,
                DefaultBaseStyle->"ColorSwatchGraphics",
                Frame->True,
                FrameStyle->RGBColor[0.6666666666666666, 0., 0.],
                FrameTicks->None,
                
                ImageSize->
                 Dynamic[{
                  Automatic, 1.35 CurrentValue["FontCapHeight"]/
                   AbsoluteCurrentValue[Magnification]}],
                PlotRangePadding->None],
               StyleBox[
                RowBox[{"RGBColor", "[", 
                  RowBox[{"1", ",", "0", ",", "0"}], "]"}], NumberMarks -> 
                False]],
              Appearance->None,
              BaseStyle->{},
              BaselinePosition->Baseline,
              ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
                If[
                 Not[
                  AbsoluteCurrentValue["Deployed"]], 
                 SelectionMove[Typeset`box$, All, Expression]; 
                 FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
                 FrontEnd`Private`$ColorSelectorInitialColor = 
                  RGBColor[1, 0, 0]; 
                 FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
                 MathLink`CallFrontEnd[
                   FrontEnd`AttachCell[Typeset`box$, 
                    FrontEndResource["RGBColorValueSelector"], {
                    0, {Left, Bottom}}, {Left, Top}, 
                    "ClosingActions" -> {
                    "SelectionDeparture", "ParentChanged", 
                    "EvaluatorQuit"}]]]],
              DefaultBaseStyle->{},
              Evaluator->Automatic,
              Method->"Preemptive"],
             RGBColor[1, 0, 0],
             Editable->False,
             Selectable->False]}], "}"}]}], "}"}], ",", "#1"}], "]"}], "&"}], 
     ")"}]}]}], "]"}]], "Input",
 CellChangeTimes->{{3.795961933034872*^9, 3.795961936303149*^9}, {
  3.795971053891348*^9, 3.7959711002171493`*^9}, {3.795971927099811*^9, 
  3.7959719361773734`*^9}, {3.795972146179381*^9, 3.7959721516729507`*^9}, {
  3.795972348978863*^9, 3.795972355425341*^9}},
 CellLabel->
  "In[233]:=",ExpressionUUID->"4399a728-41b7-406f-bca1-ae01500a7f05"],

Cell[BoxData[
 RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"LinearGradientImage", "[", 
    RowBox[{
     RowBox[{
     "CSSTools`CSSImages3`Private`CSSGradientConvertAngleToPositions", "[", 
      RowBox[{
       RowBox[{"x", " ", "Degree"}], ",", 
       RowBox[{"{", 
        RowBox[{"200", ",", "100"}], "}"}]}], "]"}], ",", 
     RowBox[{"{", 
      RowBox[{"200", ",", "100"}], "}"}], ",", 
     RowBox[{"ColorFunction", "\[Rule]", 
      RowBox[{"(", 
       RowBox[{
        RowBox[{"Blend", "[", 
         RowBox[{
          RowBox[{"{", 
           RowBox[{
            RowBox[{"{", 
             RowBox[{"0", ",", "Yellow"}], "}"}], ",", 
            RowBox[{"{", 
             RowBox[{"0.5", ",", 
              InterpretationBox[
               ButtonBox[
                TooltipBox[
                 GraphicsBox[{
                   {GrayLevel[0], RectangleBox[{0, 0}]}, 
                   {GrayLevel[0], RectangleBox[{1, -1}]}, 
                   {RGBColor[0, 
                    Rational[128, 255], 0], RectangleBox[{0, -1}, {2, 1}]}},
                  AspectRatio->1,
                  DefaultBaseStyle->"ColorSwatchGraphics",
                  Frame->True,
                  FrameStyle->RGBColor[0., 0.33464052287581697`, 0.],
                  FrameTicks->None,
                  
                  ImageSize->
                   Dynamic[{
                    Automatic, 1.35 CurrentValue["FontCapHeight"]/
                    AbsoluteCurrentValue[Magnification]}],
                  PlotRangePadding->None],
                 StyleBox[
                  RowBox[{"RGBColor", "[", 
                    RowBox[{"0", ",", 
                    FractionBox["128", "255"], ",", "0"}], "]"}], NumberMarks -> 
                  False]],
                Appearance->None,
                BaseStyle->{},
                BaselinePosition->Baseline,
                ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
                  If[
                   Not[
                    AbsoluteCurrentValue["Deployed"]], 
                   SelectionMove[Typeset`box$, All, Expression]; 
                   FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
                   FrontEnd`Private`$ColorSelectorInitialColor = RGBColor[0, 
                    Rational[128, 255], 0]; 
                   FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
                   MathLink`CallFrontEnd[
                    FrontEnd`AttachCell[Typeset`box$, 
                    FrontEndResource["RGBColorValueSelector"], {
                    0, {Left, Bottom}}, {Left, Top}, 
                    "ClosingActions" -> {
                    "SelectionDeparture", "ParentChanged", 
                    "EvaluatorQuit"}]]]],
                DefaultBaseStyle->{},
                Evaluator->Automatic,
                Method->"Preemptive"],
               RGBColor[0, 
                Rational[128, 255], 0],
               Editable->False,
               Selectable->False]}], "}"}], ",", 
            RowBox[{"{", 
             RowBox[{"0.5", ",", "Black"}], "}"}], ",", 
            RowBox[{"{", 
             RowBox[{"1", ",", 
              InterpretationBox[
               ButtonBox[
                TooltipBox[
                 GraphicsBox[{
                   {GrayLevel[0], RectangleBox[{0, 0}]}, 
                   {GrayLevel[0], RectangleBox[{1, -1}]}, 
                   {RGBColor[1, 0, 0], RectangleBox[{0, -1}, {2, 1}]}},
                  AspectRatio->1,
                  DefaultBaseStyle->"ColorSwatchGraphics",
                  Frame->True,
                  FrameStyle->RGBColor[0.6666666666666666, 0., 0.],
                  FrameTicks->None,
                  
                  ImageSize->
                   Dynamic[{
                    Automatic, 1.35 CurrentValue["FontCapHeight"]/
                    AbsoluteCurrentValue[Magnification]}],
                  PlotRangePadding->None],
                 StyleBox[
                  RowBox[{"RGBColor", "[", 
                    RowBox[{"1", ",", "0", ",", "0"}], "]"}], NumberMarks -> 
                  False]],
                Appearance->None,
                BaseStyle->{},
                BaselinePosition->Baseline,
                ButtonFunction:>With[{Typeset`box$ = EvaluationBox[]}, 
                  If[
                   Not[
                    AbsoluteCurrentValue["Deployed"]], 
                   SelectionMove[Typeset`box$, All, Expression]; 
                   FrontEnd`Private`$ColorSelectorInitialAlpha = 1; 
                   FrontEnd`Private`$ColorSelectorInitialColor = 
                    RGBColor[1, 0, 0]; 
                   FrontEnd`Private`$ColorSelectorUseMakeBoxes = True; 
                   MathLink`CallFrontEnd[
                    FrontEnd`AttachCell[Typeset`box$, 
                    FrontEndResource["RGBColorValueSelector"], {
                    0, {Left, Bottom}}, {Left, Top}, 
                    "ClosingActions" -> {
                    "SelectionDeparture", "ParentChanged", 
                    "EvaluatorQuit"}]]]],
                DefaultBaseStyle->{},
                Evaluator->Automatic,
                Method->"Preemptive"],
               RGBColor[1, 0, 0],
               Editable->False,
               Selectable->False]}], "}"}]}], "}"}], ",", "#1"}], "]"}], 
        "&"}], ")"}]}]}], "]"}], ",", "\[IndentingNewLine]", 
   RowBox[{"{", 
    RowBox[{"x", ",", "0", ",", "360"}], "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.7959711520172567`*^9, 3.79597116596921*^9}, {
  3.7959713753307476`*^9, 3.7959714046168084`*^9}, {3.795971836346719*^9, 
  3.795971841736806*^9}, {3.79597196543519*^9, 3.795971985217243*^9}, {
  3.7959720196103516`*^9, 3.7959720248412504`*^9}, {3.7959722405541325`*^9, 
  3.7959722435128717`*^9}},
 CellLabel->
  "In[232]:=",ExpressionUUID->"076b29cf-b133-4ee6-93b1-5340c74ba5fa"],

Cell[BoxData[
 RowBox[{"CSSTools`CSSImages3`Private`CSSGradientConvertAngleToPositions", 
  "[", 
  RowBox[{
   RowBox[{"26.56505117707799`", "Degree"}], ",", 
   RowBox[{"{", 
    RowBox[{"200", ",", "100"}], "}"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.795971124218278*^9, 3.7959711380630417`*^9}, 
   3.795974310311822*^9},
 CellLabel->
  "In[264]:=",ExpressionUUID->"a4a8f401-9ea1-479f-b138-eb43bdabd5f4"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
   RowBox[{"\"\<test\>\"", ",", " ", 
    RowBox[{"First", " ", "@", " ", 
     RowBox[{
     "CSSTokenize", "[", 
      "\"\<linear-gradient(to left, red 5px, white 20px, blue 30px)\>\"", 
      "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.794917939188213*^9, 3.794917939538168*^9}, {
  3.794944004288535*^9, 3.7949440126870775`*^9}},
 CellLabel->"In[27]:=",ExpressionUUID->"97eb3c64-8546-4c6f-a969-f17671191082"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
   RowBox[{"\"\<test\>\"", ",", " ", 
    RowBox[{"First", " ", "@", " ", 
     RowBox[{
     "CSSTokenize", "[", "\"\<linear-gradient(to top, 2px red, 5%, blue)\>\"",
       "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7937379268568*^9, 3.7937379839012165`*^9}, {
   3.793738023695819*^9, 3.7937380241509495`*^9}, 3.7937380557316494`*^9, {
   3.793738103021145*^9, 3.7937381117881308`*^9}, {3.7937383303146486`*^9, 
   3.7937383321041393`*^9}, {3.793739083014285*^9, 3.7937390897863855`*^9}, {
   3.7949179415553017`*^9, 3.794917942115775*^9}, {3.7949247081521015`*^9, 
   3.7949247103751574`*^9}},
 CellLabel->"In[96]:=",ExpressionUUID->"2223fbd7-1090-4e6f-85a6-60ecdb02aca6"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
   RowBox[{"\"\<test\>\"", ",", 
    RowBox[{"First", "@", 
     RowBox[{
     "CSSTokenize", "[", "\"\<linear-gradient(21deg, red, blue)\>\"", 
      "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.793965529206053*^9, 3.793965551724862*^9}, {
  3.793965612725875*^9, 3.7939656169966073`*^9}, {3.793966030189296*^9, 
  3.7939660668225994`*^9}, {3.794924115665423*^9, 3.7949241157521906`*^9}, {
  3.794924151281208*^9, 3.794924199192053*^9}},
 CellLabel->"In[12]:=",ExpressionUUID->"5822812d-3687-4dd0-8893-89352a087fef"],

Cell[BoxData[
 RowBox[{"res", "=", 
  RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
   RowBox[{"\"\<test\>\"", ",", 
    RowBox[{"First", "@", 
     RowBox[{
     "CSSTokenize", "[", "\"\<linear-gradient(21deg, red, 20px blue)\>\"", 
      "]"}]}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.7949179015469093`*^9, 3.794917907650276*^9}, {
  3.7949421663376627`*^9, 3.7949421743113403`*^9}},
 CellLabel->"In[25]:=",ExpressionUUID->"81cb2267-53d2-48bf-9684-6426da966f2d"],

Cell[BoxData[
 RowBox[{
  RowBox[{"grad", "=", 
   RowBox[{
   "CSSTokenize", "[", "\"\<linear-gradient(  red, white 20%, blue  )\>\"", 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7933673294809327`*^9, 3.7933673630040817`*^9}, {
  3.7933673986080723`*^9, 3.7933673998440123`*^9}},
 CellLabel->
  "In[219]:=",ExpressionUUID->"a8e4c916-bfd1-40d9-b5c4-8af7f30f0831"],

Cell[BoxData[
 RowBox[{
  RowBox[{"grad", "=", 
   RowBox[{"CSSTokenize", "[", "\"\<linear-gradient(  red)\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7933679911078367`*^9, 3.793367994993078*^9}, 
   3.7933686691554956`*^9},
 CellLabel->"In[55]:=",ExpressionUUID->"8c0adc3d-a4bd-40a4-a5b4-8b1d88d4db1c"],

Cell[BoxData[
 RowBox[{
  RowBox[{"grad", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<linear-gradient(  red, 25px, white 20%, blue  )\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.793373421767012*^9, 3.793373426734725*^9}},
 CellLabel->
  "In[105]:=",ExpressionUUID->"46fa0607-6915-401c-9740-e76fca2c5db9"],

Cell[BoxData[
 RowBox[{
  RowBox[{"grad", "=", 
   RowBox[{
   "CSSTokenize", "[", 
    "\"\<linear-gradient(  15deg, red, white , blue  )\>\"", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.7933830912915945`*^9, 3.793383107231246*^9}},
 CellLabel->"In[45]:=",ExpressionUUID->"d2b6e1d9-2115-49c5-9cc1-df4fbccf41f7"],

Cell[BoxData[
 RowBox[{
  RowBox[{"grad", "=", 
   RowBox[{
   "CSSTokenize", "[", "\"\<linear-gradient(red, white , blue  )\>\"", 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.7934743998454638`*^9, 3.793474402983071*^9}},
 CellLabel->
  "In[580]:=",ExpressionUUID->"ea2c317f-d0cc-4e70-a0b2-56a4a6354036"],

Cell[BoxData[
 RowBox[{"res", " ", "=", " ", 
  RowBox[{"Catch", " ", "@", " ", 
   RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
    RowBox[{"\"\<test\>\"", ",", " ", 
     RowBox[{"First", " ", "@", " ", 
      RowBox[{
      "CSSTokenize", "[", 
       "\"\<linear-gradient(to left, \n       lime 20%, red 30%, red 45%, \
cyan 55%, cyan 70%, yellow 80% )\>\"", "]"}]}]}], "]"}]}]}]], "Input",
 CellChangeTimes->{{3.7936240513497753`*^9, 3.7936240743388395`*^9}, {
   3.7936242671356745`*^9, 3.7936242687260504`*^9}, {3.7936255493848*^9, 
   3.7936255818097525`*^9}, 3.7936256453919635`*^9, {3.7936257737650304`*^9, 
   3.79362578111864*^9}, {3.7936259270826297`*^9, 3.7936259290889826`*^9}, {
   3.7936260140446215`*^9, 3.7936260717749767`*^9}, {3.7936261035442214`*^9, 
   3.793626111430353*^9}, 3.7936262665052357`*^9, {3.7936263197057533`*^9, 
   3.7936263453106823`*^9}, 3.7936267269276123`*^9},
 CellLabel->
  "In[321]:=",ExpressionUUID->"372b1668-d009-4b27-ae00-9e766808ffb0"],

Cell[BoxData[
 RowBox[{"res", "[", 
  RowBox[{"{", 
   RowBox[{"200", ",", "100"}], "}"}], "]"}]], "Input",
 CellLabel->
  "In[322]:=",ExpressionUUID->"45ed500b-3ad2-45f4-9ec1-35c3d0ec8745"],

Cell[BoxData[
 RowBox[{"res", " ", "=", " ", 
  RowBox[{"Catch", " ", "@", " ", 
   RowBox[{"CSSTools`CSSImages3`Private`parseLinearGradientFunction", "[", 
    RowBox[{"\"\<test\>\"", ",", " ", 
     RowBox[{"First", " ", "@", " ", 
      RowBox[{
      "CSSTokenize", "[", 
       "\"\<linear-gradient(to left, \n      lime 25%, red 25%, red 50%, cyan \
50%, cyan 75%, yellow 75% )\>\"", "]"}]}]}], "]"}]}]}]], "Input",
 CellChangeTimes->{3.7936267726348844`*^9},
 CellLabel->
  "In[319]:=",ExpressionUUID->"8ed58e07-4993-4b07-b0ab-fb8b202007c6"],

Cell[BoxData[
 RowBox[{"res", "[", 
  RowBox[{"{", 
   RowBox[{"200", ",", "100"}], "}"}], "]"}]], "Input",
 CellChangeTimes->{{3.795976359964096*^9, 3.795976362653469*^9}},
 CellLabel->
  "In[320]:=",ExpressionUUID->"0d832c16-28e7-4b39-a6fd-df991ee13ea6"]
}, Open  ]]
}, Open  ]]
},
WindowToolbars->{},
WindowSize->{1197, 549},
WindowMargins->{{48.75, Automatic}, {Automatic, 69}},
WindowStatusArea->None,
TaggingRules->{
 "DocuToolsSettings" -> {
   "$ApplicationName" -> "CSSTools", "$LinkBase" -> "CSSTools", 
    "$DocumentationDirectory" -> 
    "C:\\Users\\kevind\\WolframProjects\\Personal\\CSSTools\\CSSTools\\\
Documentation\\English\\", "$ApplicationDirectory" -> 
    "C:\\Users\\kevind\\WolframProjects\\Personal\\CSSTools\\CSSTools"}, 
  "TryRealOnly" -> False},
FrontEndVersion->"12.1 for Microsoft Windows (64-bit) (March 18, 2020)",
StyleDefinitions->Notebook[{
   Cell[
    StyleData[StyleDefinitions -> "Default.nb"]]}, Visible -> False, 
  FrontEndVersion -> "12.1 for Microsoft Windows (64-bit) (March 18, 2020)", 
  StyleDefinitions -> "PrivateStylesheetFormatting.nb"],
ExpressionUUID->"7650ea46-9bd9-493f-92e9-2e306331acf6"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[580, 22, 155, 3, 55, "Subsection",ExpressionUUID->"6b16fd52-48e4-42e9-b963-f73f58cbec95"],
Cell[738, 27, 243, 4, 21, "Input",ExpressionUUID->"ae6bfc8a-c8e0-4d1a-958a-c022138ca83c"],
Cell[984, 33, 330, 5, 21, "Input",ExpressionUUID->"eb1af7c9-eb26-4283-9cd5-729c553cf5da"],
Cell[1317, 40, 280, 4, 21, "Input",ExpressionUUID->"15f8de43-6f7e-4d6e-b382-8d00cef55b18"],
Cell[1600, 46, 453, 11, 21, "Input",ExpressionUUID->"5295043d-da1e-46b4-bed5-4c9b7fbcac4d"],
Cell[2056, 59, 426, 11, 21, "Input",ExpressionUUID->"a31399c5-3f72-41d3-9ed4-fdf105414512"],
Cell[2485, 72, 634, 13, 36, "Input",ExpressionUUID->"9c548b80-0590-45cf-acee-1d700ebcb08a"],
Cell[3122, 87, 512, 10, 92, "Input",ExpressionUUID->"3efe373a-7e7d-47bd-9273-53b39c83e7fd"],
Cell[3637, 99, 643, 13, 21, "Input",ExpressionUUID->"d4cc7a5c-4122-480f-be7a-27bdd6964ffa"],
Cell[4283, 114, 401, 9, 21, "Input",ExpressionUUID->"da1f0bf9-cf12-4851-8bf1-69b18300620d"],
Cell[4687, 125, 231, 3, 21, "Input",ExpressionUUID->"46cfc2a3-0acb-4276-92c2-c3423d2ca240"],
Cell[4921, 130, 445, 12, 21, "Input",ExpressionUUID->"0908a7ea-026e-4233-b3b9-ecf4d808c8fe"],
Cell[5369, 144, 319, 6, 21, "Input",ExpressionUUID->"62d79b70-300c-44fc-8d10-78f4506179d3"],
Cell[5691, 152, 234, 6, 24, "Text",ExpressionUUID->"193214c3-f1be-4608-b610-ea56575d53b8"],
Cell[5928, 160, 1516, 37, 135, "Input",ExpressionUUID->"52627f25-37b2-4a22-81d0-1a453a90e809"],
Cell[7447, 199, 149, 2, 21, "Input",ExpressionUUID->"57189547-6c1f-4b0d-8d16-341e0f53aa03"],
Cell[7599, 203, 897, 22, 36, "Input",ExpressionUUID->"ffaae6a6-9229-4bc3-a6aa-ca63fa04372b"],
Cell[8499, 227, 2709, 42, 36, "Input",ExpressionUUID->"a1598550-6caa-4f8d-9e87-8966195dcd49"],
Cell[11211, 271, 221, 4, 21, "Input",ExpressionUUID->"7bc85f3e-b246-4406-a156-38c1ef05411a"],
Cell[11435, 277, 318, 7, 21, "Input",ExpressionUUID->"766680d4-12ad-4c1b-a379-43a976069ebe"],
Cell[11756, 286, 255, 5, 21, "Input",ExpressionUUID->"8eb1518e-78ec-4478-b4cd-510f40495760"],
Cell[12014, 293, 277, 5, 21, "Input",ExpressionUUID->"2ad71781-5361-40d5-b49f-0422c9b9f1c9"]
}, Closed]],
Cell[CellGroupData[{
Cell[12328, 303, 166, 3, 52, "Section",ExpressionUUID->"3e9b576a-c8b6-4f11-b1a3-74fc4f5fe628"],
Cell[12497, 308, 163, 2, 21, "Input",ExpressionUUID->"a6e7cc8a-026b-4df9-ad9e-78fcb4c55183"],
Cell[12663, 312, 2104, 32, 36, "Input",ExpressionUUID->"3a04ff58-6512-4cd8-9d31-c9a4a230d890"],
Cell[14770, 346, 328, 6, 21, "Input",ExpressionUUID->"3bb41c15-2a39-4f6f-952d-c04a6d05111c"],
Cell[15101, 354, 389, 9, 21, "Input",ExpressionUUID->"8eb083dd-9b59-4034-960f-bcafeb61ebca"],
Cell[15493, 365, 358, 8, 21, "Input",ExpressionUUID->"763f374f-0e55-4f30-9dbe-7444053d344c"],
Cell[15854, 375, 269, 5, 21, "Input",ExpressionUUID->"0e1eec32-6f28-4415-9739-026c4f9204fa"],
Cell[16126, 382, 336, 7, 21, "Input",ExpressionUUID->"95842010-309e-409f-a402-1b6212f059a3"],
Cell[16465, 391, 319, 7, 21, "Input",ExpressionUUID->"6a0d57cb-a6bb-4201-a1fa-a73041267cd3"],
Cell[16787, 400, 451, 10, 21, "Input",ExpressionUUID->"760ba8eb-5a20-44b3-851d-8e9c8db6b590"],
Cell[17241, 412, 267, 5, 21, "Input",ExpressionUUID->"f68a7e88-7ddf-444e-80d6-229ab7e3dd44"],
Cell[17511, 419, 311, 6, 21, "Input",ExpressionUUID->"eef84007-0c07-4764-953c-754e22ec1ee1"]
}, Closed]],
Cell[CellGroupData[{
Cell[17859, 430, 211, 4, 52, "Section",ExpressionUUID->"ec79b433-31c7-477f-8006-57ce7c5c5313"],
Cell[18073, 436, 164, 2, 21, "Input",ExpressionUUID->"ac14d1de-3a9b-437d-a89c-49e1b585dab8"],
Cell[CellGroupData[{
Cell[18262, 442, 174, 3, 39, "Subsection",ExpressionUUID->"d867ad7e-5455-492d-b201-a000f56e2911"],
Cell[18439, 447, 332, 8, 21, "Input",ExpressionUUID->"38a924aa-5fa7-4bf3-a109-63e10f851488"],
Cell[18774, 457, 429, 10, 50, "Input",ExpressionUUID->"62a14512-298a-4a46-be5b-20851bb0d593"],
Cell[19206, 469, 388, 9, 21, "Input",ExpressionUUID->"6f18547d-771a-41f3-a610-55662a958766"]
}, Open  ]],
Cell[CellGroupData[{
Cell[19631, 483, 163, 3, 39, "Subsection",ExpressionUUID->"5d323993-6bc6-44e6-88f4-d5b8e5466c39"],
Cell[19797, 488, 366, 8, 78, "Input",ExpressionUUID->"dcc389e7-a499-4a1e-8a7c-1edb6bc667b0"]
}, Open  ]],
Cell[CellGroupData[{
Cell[20200, 501, 160, 3, 39, "Subsection",ExpressionUUID->"9174ef69-bb05-41a8-81a1-3f810d7c6741"],
Cell[CellGroupData[{
Cell[20385, 508, 159, 3, 33, "Subsubsection",ExpressionUUID->"cc96c6bc-d5d2-41cf-9e50-23ab8360bb81"],
Cell[20547, 513, 434, 10, 51, "Input",ExpressionUUID->"0267e842-1646-4cdc-8711-b5eef0eaef9d"]
}, Closed]],
Cell[CellGroupData[{
Cell[21018, 528, 227, 4, 27, "Subsubsection",ExpressionUUID->"fbead5d9-1681-4938-b155-28f676e0689d"],
Cell[21248, 534, 1262, 22, 234, "Input",ExpressionUUID->"f643c730-bd35-4434-8595-f4a6834d3f8e"]
}, Closed]],
Cell[CellGroupData[{
Cell[22547, 561, 228, 4, 27, "Subsubsection",ExpressionUUID->"90f393b7-37f1-48c1-992a-bf56328f68ab"],
Cell[22778, 567, 565, 11, 51, "Input",ExpressionUUID->"565754d9-dc39-42d6-ba85-c27b9d13923d"]
}, Closed]]
}, Open  ]],
Cell[CellGroupData[{
Cell[23392, 584, 168, 3, 39, "Subsection",ExpressionUUID->"8ee0a128-b684-457f-a6d1-cca8e418db8b"],
Cell[CellGroupData[{
Cell[23585, 591, 185, 3, 33, "Subsubsection",ExpressionUUID->"18536358-c12e-4945-ab01-9f13b970e960"],
Cell[23773, 596, 871, 15, 164, "Input",ExpressionUUID->"c292f9a4-3208-4518-bbec-3f420dce92c6"]
}, Open  ]],
Cell[CellGroupData[{
Cell[24681, 616, 163, 3, 33, "Subsubsection",ExpressionUUID->"02b84a92-82f4-45d5-afa5-76d24b72f850"],
Cell[24847, 621, 944, 16, 51, "Input",ExpressionUUID->"e528a2e6-d1f8-4092-b677-4fd1e4e60de3"]
}, Closed]],
Cell[CellGroupData[{
Cell[25828, 642, 162, 3, 27, "Subsubsection",ExpressionUUID->"1720c5ab-5153-4ce5-9f92-0836acc1307d"],
Cell[25993, 647, 527, 11, 51, "Input",ExpressionUUID->"2a1a13a5-8ae6-4691-a654-639ca1bd412b"]
}, Closed]],
Cell[CellGroupData[{
Cell[26557, 663, 161, 3, 27, "Subsubsection",ExpressionUUID->"ceba8625-4dca-49fc-8749-c4b1d8955e8f"],
Cell[26721, 668, 559, 12, 51, "Input",ExpressionUUID->"eab35b55-e1bc-4881-b05f-8e43c70d87aa"]
}, Closed]],
Cell[CellGroupData[{
Cell[27317, 685, 175, 3, 27, "Subsubsection",ExpressionUUID->"6d37d907-3efd-40a9-b61f-74292f57dce8"],
Cell[27495, 690, 727, 14, 51, "Input",ExpressionUUID->"1ee7cc70-13a8-40d1-8e1d-e1f049f1f9c0"]
}, Closed]],
Cell[CellGroupData[{
Cell[28259, 709, 224, 4, 27, "Subsubsection",ExpressionUUID->"8553e85f-c302-4721-9dd3-b2291035f24c"],
Cell[28486, 715, 672, 14, 51, "Input",ExpressionUUID->"2a518d0d-a252-408c-a6d5-c6f16da37bbd"]
}, Closed]],
Cell[CellGroupData[{
Cell[29195, 734, 226, 4, 27, "Subsubsection",ExpressionUUID->"62933a25-3679-4f73-996b-ea6a90896b0f"],
Cell[29424, 740, 469, 11, 51, "Input",ExpressionUUID->"9976c4b6-a17d-4480-8a4b-03d0b99e3577"]
}, Closed]],
Cell[29908, 754, 166, 3, 27, "Subsubsection",ExpressionUUID->"0de30cfc-03b7-46b3-bf1a-caac9251bd82"]
}, Open  ]],
Cell[CellGroupData[{
Cell[30111, 762, 159, 3, 39, "Subsection",ExpressionUUID->"6370e148-c389-46f7-8b03-1af6473c5fdf"],
Cell[30273, 767, 550, 9, 21, "Input",ExpressionUUID->"f8d89729-4eab-408a-8503-b4c8f0c1f061"],
Cell[30826, 778, 795, 15, 36, "Input",ExpressionUUID->"506b065d-6552-44e3-894f-04349fc14c90"],
Cell[31624, 795, 967, 16, 21, "Input",ExpressionUUID->"b6df5902-7373-4727-8503-dc4a13af1b4d"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[32640, 817, 159, 3, 52, "Section",ExpressionUUID->"984776e7-63c8-440d-932b-34c7aba3ffc2"],
Cell[32802, 822, 308, 7, 21, "Input",ExpressionUUID->"b367bc15-c959-4630-a153-89540e25edfb"],
Cell[33113, 831, 378, 8, 21, "Input",ExpressionUUID->"747eb4d1-fdbc-48aa-b121-4f019f10214a"],
Cell[33494, 841, 1360, 22, 210, "Input",ExpressionUUID->"f5d158f7-692e-457a-84a7-07c2e3c5e99e"],
Cell[34857, 865, 339, 7, 21, "Input",ExpressionUUID->"ece66c39-14c9-4834-9465-22bc4b5bb238"]
}, Closed]],
Cell[CellGroupData[{
Cell[35233, 877, 213, 4, 52, "Section",ExpressionUUID->"0c30684e-29a8-4d2d-86c0-7e4c6c6fa1fa"],
Cell[35449, 883, 437, 6, 21, "Input",ExpressionUUID->"fa2e61a5-6a87-489a-bcac-3d8b831fc3c2"],
Cell[CellGroupData[{
Cell[35911, 893, 188, 3, 39, "Subsection",ExpressionUUID->"59da4b7c-4768-41b9-88ef-ffae3ef1c6e2"],
Cell[36102, 898, 6003, 132, 150, "Input",ExpressionUUID->"0d6aede7-4cc8-4079-9852-c375fb18d285"],
Cell[42108, 1032, 393, 10, 21, "Input",ExpressionUUID->"3750b6ed-d901-44cf-b3aa-7dba189da791"],
Cell[42504, 1044, 938, 22, 36, "Input",ExpressionUUID->"4a104588-50b6-4103-b48e-28cdcec1d882"],
Cell[43445, 1068, 398, 9, 21, "Input",ExpressionUUID->"7b508b68-3ca1-4edb-ba30-aa58c6fb8b5f"],
Cell[43846, 1079, 964, 19, 55, "Input",ExpressionUUID->"d5247ab9-da00-4f41-97d9-2a18d8114533"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[44859, 1104, 158, 3, 52, "Section",ExpressionUUID->"f79f11bd-f968-4b90-af14-4286aa70e9ec"],
Cell[45020, 1109, 233, 3, 21, "Input",ExpressionUUID->"183368b5-d58e-471c-9aa1-147f47fae91f"],
Cell[45256, 1114, 441, 9, 21, "Input",ExpressionUUID->"8a9f6579-82bf-482f-9dc0-9d4d8e9855b7"],
Cell[45700, 1125, 901, 19, 21, "Input",ExpressionUUID->"85d178f5-a9b3-481b-bd1c-bf29c9f5db53"],
Cell[46604, 1146, 638, 12, 21, "Input",ExpressionUUID->"8c380425-2046-455f-b3a1-63478fe8a071"],
Cell[47245, 1160, 261, 6, 21, "Input",ExpressionUUID->"775f012b-72d9-409f-bfcd-d0e7d6bb095a"],
Cell[47509, 1168, 1635, 43, 33, "Input",ExpressionUUID->"ba2a8fc1-6321-4315-a25d-c96b87de3cdc"],
Cell[49147, 1213, 225, 5, 21, "Input",ExpressionUUID->"19eec289-d590-49a7-9c5a-fabc2e853ef8"],
Cell[49375, 1220, 439, 9, 21, "Input",ExpressionUUID->"e4ab356e-aa63-4170-81ee-36e6e53da1ad"],
Cell[49817, 1231, 783, 17, 52, "Input",ExpressionUUID->"d9b8c116-051f-4f5d-b019-4cf451aabbe7"],
Cell[50603, 1250, 487, 8, 21, "Input",ExpressionUUID->"096b8ed6-f073-4fde-9cfd-b3d020048113"],
Cell[51093, 1260, 739, 21, 21, "Input",ExpressionUUID->"09f49efb-01fa-4e49-b618-05853156afdc"],
Cell[51835, 1283, 353, 6, 21, "Input",ExpressionUUID->"7c25ebf5-03fd-44e9-95a0-437a8696d4c4"],
Cell[CellGroupData[{
Cell[52213, 1293, 193, 3, 39, "Subsection",ExpressionUUID->"18ac610e-26a0-4a82-a911-56b904fa5233"],
Cell[52409, 1298, 416, 8, 21, "Input",ExpressionUUID->"cace464e-def9-457a-bed2-ce497089768a"],
Cell[52828, 1308, 307, 6, 21, "Input",ExpressionUUID->"d48e2cdf-f749-48f5-837c-0ab7eecb72bf"]
}, Closed]],
Cell[CellGroupData[{
Cell[53172, 1319, 162, 3, 28, "Subsection",ExpressionUUID->"4145864b-4ecd-4ea9-850e-f6ca80fbcf11"],
Cell[53337, 1324, 346, 8, 21, "Input",ExpressionUUID->"e5ba3e4e-db2f-42a1-9ac2-8234cfa08ecc"],
Cell[53686, 1334, 607, 14, 21, "Input",ExpressionUUID->"89584a5e-2239-475a-adf0-8e5b3fdab0b8"],
Cell[54296, 1350, 366, 10, 21, "Input",ExpressionUUID->"52f24e78-7a70-43d1-92ed-3d669d3b6e0a"],
Cell[54665, 1362, 782, 23, 52, "Input",ExpressionUUID->"7397e0a4-6e24-4c41-9505-9a905b42858b"],
Cell[55450, 1387, 122, 2, 21, "Input",ExpressionUUID->"b58c8610-a965-4e62-a89f-8f7c27a7a42a"],
Cell[55575, 1391, 1649, 46, 67, "Input",ExpressionUUID->"dd9789b1-75d0-4ccb-af67-35274762ca5a"],
Cell[57227, 1439, 4860, 127, 202, "Input",ExpressionUUID->"818f73c9-d698-47c0-9f0a-e74055c639ec"],
Cell[62090, 1568, 863, 26, 52, "Input",ExpressionUUID->"65771b0a-8a6c-4f31-83a0-6f665969b27d"],
Cell[62956, 1596, 192, 3, 21, "Input",ExpressionUUID->"2460c552-4371-45de-98ed-86877deb9fa7"],
Cell[63151, 1601, 355, 7, 21, "Input",ExpressionUUID->"01ebc970-a00c-4d15-b8b3-2097ee5916b3"],
Cell[63509, 1610, 218, 4, 21, "Input",ExpressionUUID->"9bbefd05-9485-43e9-ac51-2c7473cb8a00"],
Cell[63730, 1616, 707, 19, 52, "Input",ExpressionUUID->"c55f518c-b446-4935-afdd-f85cd9e1b02d"],
Cell[64440, 1637, 212, 4, 21, "Input",ExpressionUUID->"c1d0690b-43fa-49cd-9f37-ce68c26ad248"],
Cell[64655, 1643, 367, 9, 21, "Input",ExpressionUUID->"df85e3d6-1354-4042-96fd-0ce6d2885267"],
Cell[65025, 1654, 963, 27, 52, "Input",ExpressionUUID->"612ecc2c-5ed0-4fad-b428-b8c64cdad4d4"],
Cell[65991, 1683, 334, 9, 21, "Input",ExpressionUUID->"aa70da9b-0ab4-42f9-a9cb-4f529a06913e"],
Cell[66328, 1694, 645, 17, 37, "Input",ExpressionUUID->"e0e55113-954b-4f65-9fcf-2c0fbf37e75a"],
Cell[66976, 1713, 1009, 26, 67, "Input",ExpressionUUID->"90f9477d-aa11-4950-a4b3-ac6b499cc3c0"],
Cell[67988, 1741, 1449, 43, 67, "Input",ExpressionUUID->"88a9de4b-2b21-4603-a712-ccaa27d1dc34"],
Cell[69440, 1786, 1535, 39, 33, "Input",ExpressionUUID->"350b4ca4-8194-42ef-bb84-dc777ef60f4b"],
Cell[70978, 1827, 1705, 43, 33, "Input",ExpressionUUID->"cae601fd-fa99-4298-8033-59a4d1953e2b"],
Cell[72686, 1872, 1616, 41, 33, "Input",ExpressionUUID->"0107be7d-88c6-44f2-8421-54ec4b982b01"]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[74351, 1919, 173, 3, 52, "Section",ExpressionUUID->"319dce68-1c3c-421b-94ad-74858f5bf321"],
Cell[74527, 1924, 344, 7, 64, "Input",ExpressionUUID->"82757c91-f22f-4675-8c61-c3f1ef3b9f57"],
Cell[74874, 1933, 331, 6, 21, "Input",ExpressionUUID->"5baea74a-7e53-423b-9948-c0341dcf2644"],
Cell[75208, 1941, 263, 6, 21, "Input",ExpressionUUID->"423b1b5b-30c1-4901-b56b-8256c8dbc94c"],
Cell[75474, 1949, 315, 7, 21, "Input",ExpressionUUID->"83099fcd-891b-4304-a0fe-eaa10eef4532"],
Cell[75792, 1958, 233, 3, 21, "Input",ExpressionUUID->"031054e3-28d7-4a79-91ac-77b517b08791"],
Cell[76028, 1963, 336, 5, 21, "Input",ExpressionUUID->"ec442119-ec3c-4700-9199-46464d5a4583"],
Cell[76367, 1970, 336, 5, 21, "Input",ExpressionUUID->"eb40b631-00af-4d8d-90eb-10b267141da6"],
Cell[76706, 1977, 1527, 25, 349, "Input",ExpressionUUID->"53f3c486-9e9c-43f1-9623-3290de63ae55"],
Cell[78236, 2004, 461, 9, 21, "Input",ExpressionUUID->"15ff1376-41d3-4740-92f6-754068f7ec9c"],
Cell[78700, 2015, 682, 13, 78, "Input",ExpressionUUID->"adeaf5bc-0b16-405e-9fe1-aa26cdf0cfe9"],
Cell[79385, 2030, 1727, 43, 93, "Input",ExpressionUUID->"4b92dc19-7cdb-484b-a80e-0a064d955770"],
Cell[81115, 2075, 322, 6, 21, "Input",ExpressionUUID->"9821499c-910e-4536-8081-8275dab6526d"],
Cell[81440, 2083, 354, 8, 21, "Input",ExpressionUUID->"b7966c43-f4dc-4526-84ca-d5257dc05e71"],
Cell[81797, 2093, 516, 11, 21, "Input",ExpressionUUID->"894a3138-c69d-4dd8-9429-1b9d684d4ac9"],
Cell[82316, 2106, 254, 5, 21, "Input",ExpressionUUID->"177472d2-c7ac-4f78-967a-33573e6a3030"],
Cell[82573, 2113, 748, 13, 21, "Input",ExpressionUUID->"2e358094-b8b7-43b3-ae01-f0a57ec13137"],
Cell[83324, 2128, 570, 12, 21, "Input",ExpressionUUID->"66268994-6eb2-4232-a33f-329ab1f972bb"],
Cell[83897, 2142, 619, 9, 21, "Input",ExpressionUUID->"b5b6855a-3c57-465f-9684-5ce991d7d91f"],
Cell[CellGroupData[{
Cell[84541, 2155, 171, 3, 39, "Subsection",ExpressionUUID->"a9fd5637-f831-4fac-9114-fe022efdacb3"],
Cell[84715, 2160, 667, 15, 21, "Input",ExpressionUUID->"e323ca9f-d5ce-4285-b5c4-6442a096dd3a"],
Cell[85385, 2177, 589, 15, 21, "Input",ExpressionUUID->"b86d6137-641f-4890-863d-dd4d30406e97"],
Cell[85977, 2194, 211, 3, 21, "Input",ExpressionUUID->"8fbbb8ab-bc8c-4737-95b8-b583b6d44684"],
Cell[86191, 2199, 221, 3, 21, "Input",ExpressionUUID->"afdfb253-183c-4c68-9191-ad95af477f7d"],
Cell[86415, 2204, 178, 2, 21, "Input",ExpressionUUID->"cd6d1d7c-43cc-4f9c-869c-a5effb7ae5ba"],
Cell[86596, 2208, 837, 22, 21, "Input",ExpressionUUID->"9f2385d8-eb01-47b5-a98c-90726f0807c8"],
Cell[87436, 2232, 270, 5, 21, "Input",ExpressionUUID->"6feda34e-b413-4c13-bab9-40023117c8b1"],
Cell[87709, 2239, 225, 5, 21, "Input",ExpressionUUID->"d079a558-c692-48e4-8d4d-979b1aea39a5"],
Cell[87937, 2246, 406, 9, 21, "Input",ExpressionUUID->"f714c95c-6dfe-4731-a6aa-d684393fcac2"],
Cell[88346, 2257, 383, 8, 22, "Input",ExpressionUUID->"9fcb69f4-6772-4789-b989-1c9778c5a8f9"],
Cell[88732, 2267, 177, 2, 21, "Input",ExpressionUUID->"75f4d65a-cc1c-4e3c-b543-b805682fc409"],
Cell[88912, 2271, 2112, 51, 93, "Input",ExpressionUUID->"df8831a8-9ee3-414e-93ec-cb0e82e5efcb"],
Cell[91027, 2324, 534, 14, 21, "Input",ExpressionUUID->"bbef448d-2d55-4e65-b931-d5334ebe82bc"],
Cell[91564, 2340, 1691, 38, 64, "Input",ExpressionUUID->"876b8cfe-8386-4af0-81cf-eac5f7cda074"]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[93304, 2384, 165, 3, 52, "Section",ExpressionUUID->"fc09df73-705c-4349-bfcf-014579325601"],
Cell[93472, 2389, 435, 6, 28, "Input",ExpressionUUID->"5dda3c1a-5f76-487d-b59d-5edddff70487"],
Cell[CellGroupData[{
Cell[93932, 2399, 169, 3, 55, "Subsection",ExpressionUUID->"1c020b8b-ff8c-474c-9409-1eb12b910c14"],
Cell[94104, 2404, 465, 8, 28, "Input",ExpressionUUID->"363ddbc1-3a64-4d8b-a891-7a78dd8c728e"],
Cell[94572, 2414, 263, 5, 28, "Input",ExpressionUUID->"fbb22dd7-a495-497a-b2ff-a48d0adaefd8"],
Cell[94838, 2421, 262, 5, 28, "Input",ExpressionUUID->"6cc54167-0c51-48a6-940f-4be7d245daee"],
Cell[95103, 2428, 485, 10, 28, "Input",ExpressionUUID->"45267589-e4fc-42f2-ad9a-b925f515b405"],
Cell[95591, 2440, 432, 8, 28, "Input",ExpressionUUID->"27b2ca0c-de55-446b-b8ac-a17c79a7d1f9"],
Cell[96026, 2450, 485, 9, 28, "Input",ExpressionUUID->"5c8338b3-b202-429a-bcdb-712c4b2a7d57"],
Cell[96514, 2461, 448, 9, 28, "Input",ExpressionUUID->"fe2062e7-715a-42d0-8f34-96ff5d32b40b"],
Cell[96965, 2472, 434, 8, 28, "Input",ExpressionUUID->"212b655d-f311-47e1-af1b-0e5953b43f44"],
Cell[97402, 2482, 524, 10, 28, "Input",ExpressionUUID->"fe9884cd-8d43-48e6-bb94-00512b7d498b"],
Cell[97929, 2494, 434, 8, 28, "Input",ExpressionUUID->"40d8ee4a-9dad-4b17-b6b4-5176e8c54710"],
Cell[98366, 2504, 396, 9, 28, "Input",ExpressionUUID->"ea0c832b-84b6-478e-b9b9-54aeac21f61f"],
Cell[98765, 2515, 909, 16, 28, "Input",ExpressionUUID->"c37edf27-6009-4566-ae30-a6bdd5089160"],
Cell[99677, 2533, 252, 5, 28, "Input",ExpressionUUID->"d9389316-4ed3-4f97-9748-4da781d2a238"],
Cell[99932, 2540, 879, 24, 44, "Input",ExpressionUUID->"4df9c1e7-e254-42c6-ac1a-e4cd406b11c9"],
Cell[100814, 2566, 453, 9, 28, "Input",ExpressionUUID->"9ea54861-465d-46b0-a0d3-cda122375c01"],
Cell[101270, 2577, 2390, 63, 160, "Input",ExpressionUUID->"914690d9-b71d-4d90-9f34-acef18436c4c"],
Cell[103663, 2642, 653, 12, 47, "Input",ExpressionUUID->"611f69e9-7f31-40da-97c9-8f2f403e0d07"],
Cell[104319, 2656, 515, 11, 28, "Input",ExpressionUUID->"afacde59-c7f5-4ad4-917c-10bd7e0f93fb"],
Cell[104837, 2669, 427, 9, 28, "Input",ExpressionUUID->"ea4df72e-2744-42e7-82bc-f63d85dba234"],
Cell[105267, 2680, 430, 9, 28, "Input",ExpressionUUID->"71f1154a-ff6d-4953-9b4d-6c8c1d9e3650"],
Cell[105700, 2691, 469, 10, 28, "Input",ExpressionUUID->"2bfcd454-27fb-4821-9b4d-2267f6af4c96"],
Cell[106172, 2703, 6230, 162, 28, "Input",ExpressionUUID->"b32dd09c-2442-49ef-a0fc-20530fbe6ce6"]
}, Open  ]],
Cell[CellGroupData[{
Cell[112439, 2870, 224, 4, 55, "Subsection",ExpressionUUID->"82fd3c59-5f7b-461b-8b8b-9763f10fc220"],
Cell[112666, 2876, 435, 6, 28, "Input",ExpressionUUID->"f6145760-afb6-4fad-8fed-5a6712ab75a7"],
Cell[113104, 2884, 265, 5, 28, "Input",ExpressionUUID->"a746e6bc-921e-4ff2-972e-a9c7d67318ac"],
Cell[113372, 2891, 313, 6, 28, "Input",ExpressionUUID->"3e68d625-5d8f-4c60-937d-71e7993709a3"],
Cell[113688, 2899, 6070, 154, 28, "Input",ExpressionUUID->"3ce350fd-1d9b-426b-bbba-bdd1c57cb144"],
Cell[119761, 3055, 489, 10, 28, "Input",ExpressionUUID->"f079d772-51e7-493a-981a-f569578712da"],
Cell[120253, 3067, 843, 16, 28, "Input",ExpressionUUID->"31090072-d34c-43f0-a5fa-87f104425067"],
Cell[121099, 3085, 1042, 20, 48, "Input",ExpressionUUID->"1bc36380-66ed-4ef6-8d8d-69e103c499a1"],
Cell[122144, 3107, 509, 10, 28, "Input",ExpressionUUID->"36109fbb-001e-49d1-b6c3-dba63a281197"],
Cell[122656, 3119, 292, 7, 28, "Input",ExpressionUUID->"fd3e7577-b6c9-4528-81dd-c4e76e7b6e75"],
Cell[122951, 3128, 5221, 127, 28, "Input",ExpressionUUID->"b56a6e95-0e5d-4ddb-a3d0-faa6376e4008"],
Cell[128175, 3257, 5399, 129, 28, "Input",ExpressionUUID->"4399a728-41b7-406f-bca1-ae01500a7f05"],
Cell[133577, 3388, 5876, 134, 87, "Input",ExpressionUUID->"076b29cf-b133-4ee6-93b1-5340c74ba5fa"],
Cell[139456, 3524, 412, 10, 28, "Input",ExpressionUUID->"a4a8f401-9ea1-479f-b138-eb43bdabd5f4"],
Cell[139871, 3536, 532, 11, 28, "Input",ExpressionUUID->"97eb3c64-8546-4c6f-a969-f17671191082"],
Cell[140406, 3549, 796, 14, 28, "Input",ExpressionUUID->"2223fbd7-1090-4e6f-85a6-60ecdb02aca6"],
Cell[141205, 3565, 635, 12, 28, "Input",ExpressionUUID->"5822812d-3687-4dd0-8893-89352a087fef"],
Cell[141843, 3579, 496, 10, 28, "Input",ExpressionUUID->"81cb2267-53d2-48bf-9684-6426da966f2d"],
Cell[142342, 3591, 372, 9, 28, "Input",ExpressionUUID->"a8e4c916-bfd1-40d9-b5c4-8af7f30f0831"],
Cell[142717, 3602, 316, 7, 28, "Input",ExpressionUUID->"8c0adc3d-a4bd-40a4-a5b4-8b1d88d4db1c"],
Cell[143036, 3611, 324, 9, 28, "Input",ExpressionUUID->"46fa0607-6915-401c-9740-e76fca2c5db9"],
Cell[143363, 3622, 320, 8, 28, "Input",ExpressionUUID->"d2b6e1d9-2115-49c5-9cc1-df4fbccf41f7"],
Cell[143686, 3632, 312, 8, 28, "Input",ExpressionUUID->"ea2c317f-d0cc-4e70-a0b2-56a4a6354036"],
Cell[144001, 3642, 1012, 18, 48, "Input",ExpressionUUID->"372b1668-d009-4b27-ae00-9e766808ffb0"],
Cell[145016, 3662, 190, 5, 28, "Input",ExpressionUUID->"45ed500b-3ad2-45f4-9ec1-35c3d0ec8745"],
Cell[145209, 3669, 548, 12, 48, "Input",ExpressionUUID->"8ed58e07-4993-4b07-b0ab-fb8b202007c6"],
Cell[145760, 3683, 256, 6, 28, "Input",ExpressionUUID->"0d832c16-28e7-4b39-a6fd-df991ee13ea6"]
}, Open  ]]
}, Open  ]]
}
]
*)

